% \iffalse meta-comment
% !TeX program  = XeLaTeX
% !TeX encoding = UTF-8
%
% Copyright (C) 2023 by Rui-Zhi Li <liruizhi0871@gmail.com>
%--------------------------------------------------------------------------
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3c of this license or (at your option) any later
% version. This version of this license is in
%    http://www.latex-project.org/lppl/lppl-1-3c.txt
% and the latest version of this license is in
%    http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of
% LaTeX version 2005/12/01 or later.
%
% This work has the LPPL maintenance status "maintained".
%
% --------------------------------------------------------------------------
%
%<*internal>
\iffalse
%</internal>
%
%<*readme>
# 云南大学研究生学位论文 LaTeX 模板

[![Compiling LaTeX template](https://github.com/Astro-Lee/YNUthesis/actions/workflows/Compiling%20LaTeX%20template.yml/badge.svg)](https://github.com/Astro-Lee/YNUthesis/actions/workflows/Compiling%20LaTeX%20template.yml)

- 本模板正处于开发阶段。

- 本模板根据[《云南大学研究生学位论文写作规范》](http://www.grs.ynu.edu.cn/info/1037/1540.htm)编写，**个人能力、精力有限，不保证完全符合规范！此外，该模板未经学校官方核准，如有顾虑，请不要使用！**

- [Overleaf](https://cn.overleaf.com/latex/templates?q=%E4%BA%91%E5%8D%97%E5%A4%A7%E5%AD%A6)

# 贡献

用户若有建议或需求，欢迎提交 [issues](https://github.com/Astro-Lee/YNUthesis/issues)、[pull requests](https://github.com/Astro-Lee/YNUthesis/pulls) 或 [discussions](https://github.com/Astro-Lee/YNUthesis/discussions)。

## Star History

[![Star History Chart](https://api.star-history.com/svg?repos=Astro-Lee/YNU-thesis-bachelor,Astro-Lee/YNUthesis&type=Date)](https://star-history.com/#Astro-Lee/YNU-thesis-bachelor&Astro-Lee/YNUthesis&Date)

# 致谢
- [stone-zeng/fduthesis](https://github.com/stone-zeng/fduthesis)
---
- Email: liruizhi0871[AT]gmail.com
- Copyright (C) 2023 by Rui-Zhi Li. 
%</readme>
%
%<*internal>
\fi
\begingroup
  \def\NameOfLaTeXe{LaTeX2e}
\expandafter\endgroup\ifx\NameOfLaTeXe\fmtname\else
\csname fi\endcsname
%</internal>
%
%<*install>
\input docstrip.tex
\keepsilent
\askforoverwritefalse
\usedir{tex/latex/YNUthesis}
\preamble

Copyright (C) 2023 by Rui-Zhi Li <liruizhi0871@gmail.com>
---------------------------------------------------------------------

    This work may be distributed and/or modified under the
    conditions of the LaTeX Project Public License, either
    version 1.3c of this license or (at your option) any later
    version. This version of this license is in
      http://www.latex-project.org/lppl/lppl-1-3c.txt
    and the latest version of this license is in
      http://www.latex-project.org/lppl.txt
    and version 1.3 or later is part of all distributions of
    LaTeX version 2005/12/01 or later.

    This work has the LPPL maintenance status "maintained".

    The Current Maintainer of this work is Rui-Zhi Li.

    This work consists of the files YNUthesis.dtx,
                                    YNUthesis-logo.dtx,
              and the derived files YNUthesis.ins,
                                    YNUthesis.cls,
                                and README.md.
---------------------------------------------------------------------

\endpreamble

\generate{
  \usedir{tex/latex/YNUthesis}
    \file{\jobname.cls}        {\from{\jobname.dtx}{class}}
    \file{\jobname.def}        {\from{\jobname.dtx}{definition}}
    \file{YNUlogo.sty}         {\from{\jobname.dtx}{logo}}
%</install>
%<*internal>
  \usedir{source/latex/YNUthesis}
    \file{\jobname.ins}        {\from{\jobname.dtx}{install}}
%</internal>
%<*install>
  \usedir{doc/latex/YNUthesis}
  \nopreamble\nopostamble
    \file{README.md}           {\from{\jobname.dtx}{readme}}
}

\obeyspaces
\Msg{*************************************************************}
\Msg{*                                                           *}
\Msg{* To finish the installation you have to move the following *}
\Msg{* files into a directory searched by TeX:                   *}
\Msg{*                                                           *}
\Msg{* The recommended directory is TDS:tex/latex/YNUthesis      *}
\Msg{*                                                           *}
\Msg{*     YNUthesis.cls                                         *}
\Msg{*                                                           *}
\Msg{* To produce the documentation, run the file YNUthesis.dtx  *}
\Msg{* through XeLaTeX.                                          *}
\Msg{*                                                           *}
\Msg{* Happy TeXing!                                             *}
\Msg{*                                                           *}
\Msg{*************************************************************}

\endbatchfile
%</install>
%
%<*internal>
\fi
%</internal>
%
%<*driver>
%\ProvidesFile{YNUthesis.dtx}
%</driver>
%
%^^A https://tex.stackexchange.com/questions/201660/latex3s-getidinfo-how-is-its-argument-automatically-populated
%<class|logo>\NeedsTeXFormat{LaTeX2e}[2023/06/01]
%<class|logo>\RequirePackage{expl3}
%
%<*!(driver|install)>
%<!readme>\GetIdInfo $Id: YNUthesis.dtx 0.0.3 2023-06-30 12:00:00Z Rui-Zhi Li <liruizhi0871@gmail.com> $
%<class>  {Thesis template for Yunnan University}
%<class>\ProvidesExplClass{\ExplFileName}
%
%<logo>  {Yunnan University's Visual Identity}
%<logo>\ProvidesExplPackage{YNUlogo}
%
%<definition>  {Definition file for fduthesis}
%<definition>\ProvidesExplFile{\ExplFileName.def}
%
%<!readme>  {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
%</!(driver|install)>
%
%<*driver>
\documentclass{ctxdoc}
\usepackage{YNUlogo}
\usepackage{zhlipsum}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
%^^A \DisableImplementation
\begin{document}
  \DocInput{\jobname.dtx}
\end{document}
%</driver>
% \fi
%
% \CheckSum{0}
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
% \GetFileInfo{YNUthesis.dtx}
%
% \DoNotIndex{hlist of control sequencesi}
% \hypersetup{
%   pdftitle  = {YNUthesis: 云南大学论文模板},
%   pdfauthor = {李睿智}}
%^^A 全角标点放在引号中，需要改成半角式，否则间距过大，不好看
% \def\FSID{“{\xeCJKsetup{PunctStyle=banjiao}。}”} ^^A % U+3002
% \def\FSFW{“{\xeCJKsetup{PunctStyle=banjiao}．}”} ^^A % U+FF0E
% \def\COFW{“{\xeCJKsetup{PunctStyle=banjiao}：}”} ^^A % U+FF1A
% \def\SCFW{“{\xeCJKsetup{PunctStyle=banjiao}；}”} ^^A % U+FF1B
%
% \title{\bfseries 云南大学学位论文\LaTeX{} 模板}
% \author{\href{https://gitee.com/Astro-Lee/YNUthesis}{Gitee.com}}
% \date{\filedate\qquad\fileversion\thanks{\ctexkitrev{\ExplFileVersion}.}}
%
% \maketitle
%
%^^A \vfil
%^^A \begin{center}
%^^A   \YNUemblem[scale=1.5]  \YNUname[scale=4]
%^^A \end{center}
%^^A \vfil
%
% \begin{abstract}
% \CTeX{} 宏集是面向中文排版的通用 \LaTeX{} 排版框架，为中文 \LaTeX{} 文档
% 提供了汉字输出支持、标点压缩、字体字号命令、标题文字汉化、中文版式调整、数字
% 日期转换等支持功能，可适应论文、报告、书籍、幻灯片等不同类型的中文文档。
%
% \CTeX{} 宏集支持 \LaTeX、\pdfLaTeX、\XeLaTeX、\LuaLaTeX、\upLaTeX{} 等多种不同
% 的编译方式，并为它们提供了统一的界面。主要功能由宏包 \pkg{ctex} 以及中文文档类
% \cls{ctexart}、\cls{ctexrep}、\cls{ctexbook} 和 \cls{ctexbeamer} 实现。
% \end{abstract}
%
% \tableofcontents
%
% \bigskip
% \setlength{\parskip}{0.8ex}
%
% \begin{documentation}
%
% \section{介绍}
% 这里是介绍\LaTeX{}模板的使用
% \zhlipsum[10]
% \YNUemblem[scale=1.5]  \YNUname[scale=1]
% \zhlipsum[10]
%
% \subsection{子节}
% 这里是介绍\LaTeX{}模板的使用
% \zhlipsum[10]
%
% \subsection{子节}
% 这里是介绍\LaTeX{}模板的使用
% \zhlipsum[10]
% \YNUemblem[scale=1.5]
% \zhlipsum[10]
% \YNUname[scale=4]
% \zhlipsum[10]
% \YNUnameTwo[scale=0.045]
% \zhlipsum[10]
%
% \end{documentation}
%
% \StopEventually{}
%
%\begin{implementation}
% \clearpage
% \section{代码实现}
%
%    \begin{macrocode}
%<@@=YNU>
%    \end{macrocode}
%
%    \begin{macrocode}
%<*class>
%    \end{macrocode}
%
% 检查 \pkg{expl3} 的版本。
%    \begin{macrocode}
\RequirePackage { xtemplate, l3keys2e }
\msg_new:nnnn { YNUthesis } { l3-too-old }
  { Support~ package~ `#1'~ too~ old. }
  {
    Please~ update~ an~ up-to-date~ version~ of~ the~ bundles\\\\
    `l3kernel'~ and~` l3packages'\\\\
    using~ your~ TeX~ package~ manager~ or~ from~ CTAN.
  }
\@ifpackagelater { expl3 } { 2023/06/30 } { }
  { \msg_error:nnn { YNUthesis } { l3-too-old } { expl3 } }
%    \end{macrocode}
%
% 目前 \cls{YNUthesis} 仅支持 \XeTeX{} 与 \LuaTeX{}。
%    \begin{macrocode}
\msg_new:nnn { YNUthesis } { unsupported-engine }
  {
    The~ YNUthesis~ class~ requires~ either~ XeTeX~ or~ LuaTeX. \\\\
    "#1"~ is~ not~ supported~ at~ present.~ You~ must~ change \\
    your~ typesetting~ engine~ to~ "xelatex"~ or~ "lualatex".
  }
\sys_if_engine_xetex:F
  {
    \sys_if_engine_luatex:F
      {
        \msg_fatal:nnx { YNUthesis } { unsupported-engine }
          { \c_sys_engine_str }
      }
  }
%    \end{macrocode}
%
% \subsection{内部变量声明}
%
% \begin{variable}{\l_@@_tmpa_box,
%   \l_@@_tmpa_clist,\l_@@_tmpb_clist,
%   \l_@@_tmpa_dim,\l_@@_tmpb_dim,
%   \l_@@_tmpa_skip,
%   \l_@@_tmpa_tl,\l_@@_tmpb_tl}
% 临时变量。
%    \begin{macrocode}
\box_new:N   \l_@@_tmpa_box
\clist_new:N \l_@@_tmpa_clist
\clist_new:N \l_@@_tmpb_clist
\dim_new:N   \l_@@_tmpa_dim
\dim_new:N   \l_@@_tmpb_dim
\skip_new:N  \l_@@_tmpa_skip
\tl_new:N    \l_@@_tmpa_tl
\tl_new:N    \l_@@_tmpb_tl
%    \end{macrocode}
% \end{variable}
%
% \begin{variable}{\g_@@_thesis_type_int}
% 论文类型。取值 1、2、3 分别对应博士、硕士、本科（学士）。
%    \begin{macrocode}
\int_new:N \g_@@_thesis_type_int
%    \end{macrocode}
% \end{variable}
%
% \begin{variable}{\g_@@_to_ctexbook_clist,\g_@@_to_hyperref_clist}
% 分别保存由 \cls{YNUthesis} 传入 \cls{ctexbook} 文档类和
% \pkg{hyperref} 宏包的选项列表。
%    \begin{macrocode}
\clist_new:N \g_@@_to_ctexbook_clist
\clist_new:N \g_@@_to_hyperref_clist
%    \end{macrocode}
% \end{variable}
%
% \begin{variable}{\g_@@_twoside_bool}
% 是否开启双页模式（默认打开）。
%    \begin{macrocode}
\bool_new:N \g_@@_twoside_bool
\bool_set_true:N \g_@@_twoside_bool
%    \end{macrocode}
% \end{variable}
%
% \begin{variable}{\g_@@_draft_bool}
% 是否开启草稿模式（默认关闭）。
%    \begin{macrocode}
\bool_new:N \g_@@_draft_bool
%    \end{macrocode}
% \end{variable}
%
% \begin{variable}{\g_@@_config_tl}
% 保存配置文件名称。默认为空。
%    \begin{macrocode}
\tl_new:N \g_@@_config_tl
%    \end{macrocode}
% \end{variable}
%
% \subsection{内部函数}
%
% \begin{macro}{\file_input:V,
%   \int_to_arabic:v,
%   \keys_define:nx,
%   \tl_map_inline:xn}
% \begin{macro}[TF]{\tl_if_eq:Vn}
% \LaTeX3{} 函数变体。
%    \begin{macrocode}
\cs_generate_variant:Nn \file_input:n     { V  }
\cs_generate_variant:Nn \int_to_arabic:n  { v  }
\cs_generate_variant:Nn \keys_define:nn   { nx }
\cs_generate_variant:Nn \tl_map_inline:nn { xn }
\prg_generate_conditional_variant:Nnn \tl_if_eq:nn { Vn } { T, TF }
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\@@_quad:,\@@_qquad:}
% 等价于 \LaTeXe{} 中的 \tn{quad} 和 \tn{qquad}。
%    \begin{macrocode}
\cs_new:Npn \@@_quad:  { \skip_horizontal:n { 1 em } }
  \cs_new:Npn \@@_qquad: { \skip_horizontal:n { 2 em } }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_vspace:N,\@@_vspace:n,\@@_vspace:c}
% 类似 \LaTeXe{} 中的 \tn{vspace*}。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_vspace:N #1
  {
    \dim_set_eq:NN \l_@@_tmpa_dim \prevdepth
    \hrule height \c_zero_dim
    \nobreak
    \skip_vertical:N #1
    \skip_vertical:N \c_zero_skip
    \dim_set_eq:NN \prevdepth \l_@@_tmpa_dim
  }
\cs_new_protected:Npn \@@_vspace:n #1
  {
    \skip_set:Nn \l_@@_tmpa_skip {#1}
    \@@_vspace:N \l_@@_tmpa_skip
  }
\cs_generate_variant:Nn \@@_vspace:N { c }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_arabic:n}
% 等价于 \LaTeXe{} 中的 \tn{arabic}。
%    \begin{macrocode}
\cs_new:Npn \@@_arabic:n #1
  { \int_to_arabic:v { c@ #1 } }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_gadd_ltxhook:nn}
% 封装 \LaTeX{} 的钩子管理机制。本模板中的字体加载命令位于
% |begindocument/before| 钩子中，需确保在 \pkg{xeCJK} 之前执行。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_gadd_ltxhook:nn #1#2
  { \hook_gput_code:nnn {#1} { . } {#2} }
\hook_gset_rule:nnnn { begindocument/before } { . } { < } { xeCJK }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_patch_cmd:Nnn,\@@_appto_cmd:Nn}
% 补丁工具，来自 \pkg{ctexpatch} 宏包。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_patch_cmd:Nnn #1#2#3
  {
    \ctex_patch_cmd_once:NnnnTF #1 { } {#2} {#3}
      { } { \ctex_patch_failure:N #1 }
  }
\cs_new_protected:Npn \@@_appto_cmd:Nn #1#2
  {
    \ctex_appto_cmd:NnnTF #1 { } {#2}
      { } { \ctex_patch_failure:N #1 }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_define_fn_style:nn,
%   \@@_define_punct:nn,
%   \@@_define_sep:nn,
%   \@@_define_format:nn,
%   \@@_define_name:nn,
%   \@@_define_name:nnn}
% 用来定义脚注样式、标点、默认名称的辅助函数。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_define_fn_style:nn #1#2
  { \tl_const:cn { c_@@_fn_style_ #1 _tl } {#2} }
\cs_new_protected:Npn \@@_define_punct:nn #1#2
  { \tl_const:cn { c_@@_ #1 _tl } {#2} }
\cs_new_protected:Npn \@@_define_sep:nn #1#2
  { \tl_const:cn { c_@@_ #1 _sep_tl } {#2} }
\cs_new_protected:Npn \@@_define_format:nn #1#2
  { \tl_const:cn { c_@@_ #1 _format_tl } {#2} }
\cs_new_protected:Npn \@@_define_name:nn #1#2
  { \tl_const:cn { c_@@_name_ #1 _tl } {#2} }
\cs_new_protected:Npn \@@_define_name:nnn #1#2#3
  {
    \tl_const:cn { c_@@_name_ #1    _tl } {#2}
    \tl_const:cn { c_@@_name_ #1 _en_tl } {#3}
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_msg_new:nn,
%   \@@_error:n,\@@_error:nn,\@@_error:nx,\@@_error:nnn,\@@_error:nnnn
%   \@@_warning:n,\@@_warning:nn,\@@_warning:nxx,
%   \@@_info:nx}
% 各种信息函数的缩略形式。
%    \begin{macrocode}
\cs_new:Npn \@@_msg_new:nn  { \msg_new:nnn      { YNUthesis } }
\cs_new:Npn \@@_error:n     { \msg_error:nn     { YNUthesis } }
\cs_new:Npn \@@_error:nn    { \msg_error:nnn    { YNUthesis } }
\cs_new:Npn \@@_error:nx    { \msg_error:nnx    { YNUthesis } }
\cs_new:Npn \@@_error:nnn   { \msg_error:nnnn   { YNUthesis } }
\cs_new:Npn \@@_error:nnnn  { \msg_error:nnnnn  { YNUthesis } }
\cs_new:Npn \@@_warning:n   { \msg_warning:nn   { YNUthesis } }
\cs_new:Npn \@@_warning:nn  { \msg_warning:nnn  { YNUthesis } }
\cs_new:Npn \@@_warning:nxx { \msg_warning:nnxx { YNUthesis } }
\cs_new:Npn \@@_info:nx     { \msg_info:nnx     { YNUthesis } }
%    \end{macrocode}
% \end{macro}
%
% \subsection{选项处理}
%
% 定义 |YNU/option| 键值类。
%    \begin{macrocode}
\keys_define:nn { YNU / option }
  {
%    \end{macrocode}
%
% \begin{macro}{type}
% 设置论文类型。设为模板选项主要是为了以后的兼容性。论文类型可能会
% 影响很多设置，只是暂时还不考虑。默认为硕士毕业论文。
%    \begin{macrocode}
    type .choice:,
    type .value_required:n = true,
    type .choices:nn =
      { doctor, master, bachelor }
      { \int_set_eq:NN \g_@@_thesis_type_int \l_keys_choice_int },
    type .initial:n = master,
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{oneside,twoside}
% 设置页面类型为单面或双面。
%    \begin{macrocode}
    oneside .value_forbidden:n = true,
    twoside .value_forbidden:n = true,
    oneside .code:n =
      {
        \clist_gput_right:Nn \g_@@_to_ctexbook_clist { oneside }
        \bool_set_false:N    \g_@@_twoside_bool
      },
    twoside .code:n =
      {
        \clist_gput_right:Nn \g_@@_to_ctexbook_clist { twoside }
        \bool_set_true:N     \g_@@_twoside_bool
      },
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{draft}
% 是否开启草稿模式（默认关闭）。
%    \begin{macrocode}
    draft .choice:,
    draft / true  .code:n =
      {
        \bool_set_true:N     \g_@@_draft_bool
        \clist_gput_right:Nn \g_@@_to_ctexbook_clist { draft }
      },
    draft / false .code:n =
      { \bool_set_false:N    \g_@@_draft_bool },
    draft .default:n = true,
    draft .initial:n = false,
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{config}
% 配置文件名。
%    \begin{macrocode}
    config .tl_set:N = \g_@@_config_tl,
%    \end{macrocode}
% \end{macro}
%
% 处理未知选项。
%    \begin{macrocode}
    unknown .code:n = { \@@_error:n { unknown-option } }
  }
\@@_msg_new:nn { unknown-option }
  { Class~ option~ "\l_keys_key_str"~ is~ unknown. }
%    \end{macrocode}
%
% 将文档类选项传给 |YNU/option|。
%    \begin{macrocode}
\ProcessKeysOptions { YNU / option }
%    \end{macrocode}
%
% 载入参数配置文件。
%    \begin{macrocode}
\file_input:n { YNUthesis.def }
\@@_msg_new:nn { load-config-file }
  { You~ are~ loading~ config~ file~ "#1". }
\tl_if_empty:NF \g_@@_config_tl
  {
    \@@_info:nx { load-config-file } { \g_@@_config_tl }
    \file_input:V \g_@@_config_tl
  }
%    \end{macrocode}
%
% \subsection{载入宏包、文档类}
% 将选项传入 \cls{ctexbook} 文档类。
%    \begin{macrocode}
\PassOptionsToClass
  {
    UTF8,
    heading    = true,
    zihao      = -4,
    fontset    = none,
    linespread = \c_@@_line_spread_fp,
% 加上之前自定义的文档类选项
    \g_@@_to_ctexbook_clist
  }
  { ctexbook }
%    \end{macrocode}
%
% 传入各宏包选项。
%    \begin{macrocode}
\clist_map_inline:nn
  {
    { no-math           } { fontspec },
    { perpage           } { footmisc },
    { amsmath, thmmarks } { ntheorem }
  }
  { \PassOptionsToPackage #1 }
%    \end{macrocode}
%
% 载入 \cls{ctexbook} 文档类。
% 在使用 \XeLaTeX{} 编译时，\cls{ctexbook} 的底层将调用 \pkg{xeCJK}
% 宏包；而在使用 \LuaLaTeX{} 编译时，则将调用 \pkg{LuaTeX-ja} 宏包。
% 两种情况下 \cls{ctexbook} 均会调用 \pkg{fontspec} 宏包。
%    \begin{macrocode}
\LoadClass { ctexbook }
%    \end{macrocode}
%
% 载入各宏包。其中，\pkg{amsmath} 必须在 \pkg{unicode-math} 之前引入。
%    \begin{macrocode}
\RequirePackage
  {
    amsmath,
    unicode-math,
    geometry,
    fancyhdr,
    footmisc,
    ntheorem,
    graphicx,
    longtable,
    caption,
    xcolor,
    adjustbox,
    tabularray
  }
%    \end{macrocode}
%
% \begin{macro}{\@@_check_package:nnn,\@@_check_class:nnn}
% 检查过时宏包和文档类（参数：类/宏包名、时间和版本）。
% \begin{arguments}
%   \item 类/宏包名
%   \item 日期
%   \item 版本号
% \end{arguments}
%    \begin{macrocode}
\cs_new_protected:Npn \@@_check_package:nnn #1#2#3
  {
    \@ifpackagelater {#1} {#2}
      { } { \@@_error:nnnn { package-too-old } { Package } {#1} {#3} }
  }
\cs_new_protected:Npn \@@_check_class:nnn #1#2#3
  {
    \@ifclasslater {#1} {#2}
      { } { \@@_error:nnnn { package-too-old } { Class } {#1} {#3} }
  }
\@@_msg_new:nn { package-too-old }
  {
    #1~ "#2"~ is~ too~ old. \\
    The~ YNUthesis~ class~ only~ supports~ "#2" \\
    with~ a~ version~ higher~ than~ v#3. \\\\
    Please~ update~ an~ up-to-date~ version~ of~ it \\
    using~ your~ TeX~ package~ manager~ or~ from~ CTAN.
  }
%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
\@@_check_class:nnn { ctexbook } { 2021/07/14 } { 2.5.10 }
\sys_if_engine_xetex:T
  { \@@_check_package:nnn { xeCJK } { 2021/08/05 } { 3.9.1 } }
%    \end{macrocode}
%
% \subsection{页面布局}
% 利用 \pkg{geometry} 宏包设置纸张大小、页面边距以及页眉高度。
%
%    \begin{macrocode}
\geometry
  {
    paper         = a4paper,
    top           = 3cm,
    bottom        = 2.5cm,
    left          = 2.5cm,
    right         = 2.5cm,
    bindingoffset = 1.0cm,
    head          = 1.6cm,
    foot          = 1.5cm
  }
%    \end{macrocode}
%
% 草稿模式下显示页面边框及页眉、页脚线。
%    \begin{macrocode}
\bool_if:NT \g_@@_draft_bool { \geometry { showframe } }
%    \end{macrocode}
%
% \subsection{字体}
%
% \subsubsection{预定义字体配置}
%
% \begin{variable}{\g_@@_fontset_tl, \g_@@_cjk_fontset_tl}
% 存放字体选项值。
%    \begin{macrocode}
\tl_new:N \g_@@_fontset_tl
\tl_new:N \g_@@_cjk_fontset_tl
%    \end{macrocode}
% \end{variable}
%
% \begin{macro}{style/font}
% 预定义西文字体。
%    \begin{macrocode}
\keys_define:nn { YNU / style }
  {
    font .choices:nn =
      { garamond, libertinus, lm, palatino, times, times*, none }
      { \tl_set_eq:NN \g_@@_fontset_tl \l_keys_choice_tl }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{style/cjk-font}
% 预定义中文字体。
%    \begin{macrocode}
\keys_define:nn { YNU / style }
  {
    cjk-font .choices:nn =
      { adobe, fandol, founder, mac, sinotype, sourcehan, windows, none }
      { \tl_set_eq:NN \g_@@_cjk_fontset_tl \l_keys_choice_tl }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{
%   \@@_setmainfont:nn,
%   \@@_setsansfont:nn,
%   \@@_setmonofont:nn,
%   \@@_setmathfont:nn}
% 用于设置西文字体的辅助函数，来源于 \pkg{fontspec} 和 \pkg{unicode-math}，注意参数顺序。
% \begin{arguments}
%   \item 字体名
%   \item 选项
% \end{arguments}
%    \begin{macrocode}
\cs_new_protected:Npn \@@_setmainfont:nn #1#2
  { \__fontspec_main_setmainfont:nn {#2} {#1} }
\cs_new_protected:Npn \@@_setsansfont:nn #1#2
  { \__fontspec_main_setsansfont:nn {#2} {#1} }
\cs_new_protected:Npn \@@_setmonofont:nn #1#2
  { \__fontspec_main_setmonofont:nn {#2} {#1} }
\cs_new_protected:Npn \@@_setmathfont:nn #1#2
  { \__um_setmathfont:nn {#2} {#1} }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{
%   \@@_setCJKmainfont:nn,
%   \@@_setCJKsansfont:nn,
%   \@@_setCJKmonofont:nn}
% 用于设置中文字体的辅助函数，来源于 \pkg{xeCJK} 和 \pkg{ctex} 宏包。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_setCJKmainfont:nn #1#2
  { \@@_set_family:xnn { \CJKrmdefault } {#2} {#1} }
\cs_new_protected:Npn \@@_setCJKsansfont:nn #1#2
  { \@@_set_family:xnn { \CJKsfdefault } {#2} {#1} }
\cs_new_protected:Npn \@@_setCJKmonofont:nn #1#2
  { \@@_set_family:xnn { \CJKttdefault } {#2} {#1} }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_set_cjk_font_kai:nn,\YNU@kai,\YNU@xingkai}
% 楷体与行楷需要单独设置。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_set_cjk_font_kai:nn #1#2
  { \@@_set_family:nnn { YNU@kai } {#2} {#1} }
\cs_new_protected:Npn \YNU@kai
  { \@@_switch_family:n { YNU@kai } }
% 行楷
\cs_new_protected:Npn \@@_set_cjk_font_xingkai:nn #1#2
  { \@@_set_family:nnn { YNU@xingkai } {#2} {#1} }
\cs_new_protected:Npn \YNU@xingkai
  { \@@_switch_family:n { YNU@xingkai } }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{
%   \@@_cjk_font_options:,
%   \@@_setCJKmainfont:n,
%   \@@_setCJKsansfont:n,
%   \@@_setCJKmonofont:n,
%   \@@_set_cjk_font_kai:n,
%   \@@_set_cjk_font_xingkai:n}
% 将 bold、italic 和 bold italic 统一按照 roman 设置，只需提供字体名即可。
%    \begin{macrocode}
\tl_const:Nn \@@_cjk_font_options:
 { Path=fonts/, UprightFont = *, ItalicFont = *, AutoFakeBold = true }
\cs_new_protected:Npx \@@_setCJKmainfont:n   #1
  { \@@_setCJKmainfont:nn   {#1} { \@@_cjk_font_options: } }
\cs_new_protected:Npx \@@_setCJKsansfont:n   #1
  { \@@_setCJKsansfont:nn   {#1} { \@@_cjk_font_options: } }
\cs_new_protected:Npx \@@_setCJKmonofont:n   #1
  { \@@_setCJKmonofont:nn   {#1} { \@@_cjk_font_options: } }
\cs_new_protected:Npx \@@_set_cjk_font_kai:n #1
  { \@@_set_cjk_font_kai:nn {#1} { \@@_cjk_font_options: } }
\cs_new_protected:Npx \@@_set_cjk_font_xingkai:n #1
  { \@@_set_cjk_font_xingkai:nn {#1} { \@@_cjk_font_options: } }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_set_family:nnn,\@@_set_family:xnn,\@@_switch_family:n}
% 封装 CJK 字体族的设定和切换命令。
%    \begin{macrocode}
\sys_if_engine_xetex:TF
  {
    \cs_new_eq:NN \@@_set_family:nnn  \xeCJK_set_family:nnn
    \cs_new_eq:NN \@@_switch_family:n \xeCJK_switch_family:n
  }
  {
    \cs_new_eq:NN \@@_set_family:nnn  \ctex_ltj_set_family:nnn
    \cs_new_eq:NN \@@_switch_family:n \ctex_ltj_switch_family:n
  }
\cs_generate_variant:Nn \@@_set_family:nnn { x }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{
%   \setmainfont,
%   \setsansfont,
%   \setmonofont,
%   \setmathfont,
%   \setCJKmainfont,
%   \setCJKsansfont,
%   \setCJKmonofont,
%   \@@_set_font:n}
% 重新定义以上宏包提供的字体选择命令。我们把它放在导言区末尾，使得用户配置不被
% 模板配置覆盖。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_set_font_helper:n #1
  {
    \exp_args:Nc \RenewDocumentCommand { set #1 font } { O { } m O { } }
      {
        \ctex_at_end_preamble:n
          { \use:c { @@_set #1 font:nn } {##2} { ##1, ##3 } }
      }
  }
\clist_map_inline:nn { main, sans, mono, math } { \@@_set_font_helper:n {#1} }
\clist_map_inline:nn { CJKmain, CJKsans, CJKmono } { \@@_set_font_helper:n {#1} }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{
%   \g_@@_font_family_libertinus_serif_tl,
%   \g_@@_font_family_libertinus_sans_tl,
%   \g_@@_font_style_libertinus_rm_tl,
%   \g_@@_font_style_libertinus_bf_tl,
%   \g_@@_font_style_libertinus_it_tl,
%   \g_@@_font_style_libertinus_bfit_tl,
%   \g_@@_font_style_libertinus_bfsl_tl,
%   \g_@@_font_family_xits_tl,
%   \g_@@_font_style_xits_rm_tl,
%   \g_@@_font_style_xits_bf_tl,
%   \g_@@_font_style_xits_it_tl,
%   \g_@@_font_style_xits_bfit_tl,
%   \g_@@_font_name_libertinus_serif_tl,
%   \g_@@_font_name_libertinus_sans_tl,
%   \g_@@_font_name_libertinus_math_tl,
%   \g_@@_font_name_xits_tl,
%   \g_@@_font_name_xits_math_rm_tl,
%   \g_@@_font_name_xits_math_bf_tl}
% Libertinus 和 XITS 字体的文件名做过变动，需要特殊处理。
%    \begin{macrocode}
\tl_new:N \g_@@_font_family_libertinus_serif_tl
\tl_new:N \g_@@_font_family_libertinus_sans_tl
\tl_new:N \g_@@_font_style_libertinus_rm_tl
\tl_new:N \g_@@_font_style_libertinus_bf_tl
\tl_new:N \g_@@_font_style_libertinus_it_tl
\tl_new:N \g_@@_font_style_libertinus_bfit_tl
\tl_new:N \g_@@_font_style_libertinus_bfsl_tl
\tl_new:N \g_@@_font_family_xits_tl
\tl_new:N \g_@@_font_style_xits_rm_tl
\tl_new:N \g_@@_font_style_xits_bf_tl
\tl_new:N \g_@@_font_style_xits_it_tl
\tl_new:N \g_@@_font_style_xits_bfit_tl
\tl_new:N \g_@@_font_name_libertinus_serif_tl
\tl_new:N \g_@@_font_name_libertinus_sans_tl
\tl_new:N \g_@@_font_name_libertinus_math_tl
\tl_new:N \g_@@_font_name_xits_tl
\tl_new:N \g_@@_font_name_xits_math_rm_tl
\tl_new:N \g_@@_font_name_xits_math_bf_tl
\fontspec_font_if_exist:nTF { LibertinusSerif-Regular.otf }
  {
    \tl_set:Nn \g_@@_font_family_libertinus_serif_tl { LibertinusSerif }
    \tl_set:Nn \g_@@_font_family_libertinus_sans_tl  { LibertinusSans  }
    \tl_set:Nn \g_@@_font_family_libertinus_math_tl  { LibertinusMath  }
    \tl_set:Nn \g_@@_font_style_libertinus_rm_tl     { Regular         }
    \tl_set:Nn \g_@@_font_style_libertinus_bf_tl     { Bold            }
    \tl_set:Nn \g_@@_font_style_libertinus_it_tl     { Italic          }
    \tl_set:Nn \g_@@_font_style_libertinus_bfit_tl   { BoldItalic      }
%    \end{macrocode}
% 较新版本中 Libertinus Sans Bold Oblique 字体被移除，需进行额外判断。
%    \begin{macrocode}
    \fontspec_font_if_exist:nTF { LibertinusSans-BoldOblique.otf }
      { \tl_set:Nn \g_@@_font_style_libertinus_bfsl_tl { BoldOblique } }
      { \tl_set:Nn \g_@@_font_style_libertinus_bfsl_tl { Bold        } }
  }
  {
    \tl_set:Nn \g_@@_font_family_libertinus_serif_tl { libertinusserif }
    \tl_set:Nn \g_@@_font_family_libertinus_sans_tl  { libertinussans  }
    \tl_set:Nn \g_@@_font_family_libertinus_math_tl  { libertinusmath  }
    \tl_set:Nn \g_@@_font_style_libertinus_rm_tl     { regular         }
    \tl_set:Nn \g_@@_font_style_libertinus_bf_tl     { bold            }
    \tl_set:Nn \g_@@_font_style_libertinus_it_tl     { italic          }
    \tl_set:Nn \g_@@_font_style_libertinus_bfit_tl   { bolditalic      }
    \tl_set:Nn \g_@@_font_style_libertinus_bfsl_tl   { bolditalic      }
  }
\fontspec_font_if_exist:nTF { XITS-Regular.otf }
  {
    \tl_set:Nn \g_@@_font_family_xits_tl        { XITS             }
    \tl_set:Nn \g_@@_font_style_xits_rm_tl      { Regular          }
    \tl_set:Nn \g_@@_font_style_xits_bf_tl      { Bold             }
    \tl_set:Nn \g_@@_font_style_xits_it_tl      { Italic           }
    \tl_set:Nn \g_@@_font_style_xits_bfit_tl    { BoldItalic       }
    \tl_set:Nn \g_@@_font_name_xits_math_rm_tl  { XITSMath-Regular }
    \tl_set:Nn \g_@@_font_name_xits_math_bf_tl  { XITSMath-Bold    }
  }
  {
    \tl_set:Nn \g_@@_font_family_xits_tl        { xits          }
    \tl_set:Nn \g_@@_font_style_xits_rm_tl      { regular       }
    \tl_set:Nn \g_@@_font_style_xits_bf_tl      { bold          }
    \tl_set:Nn \g_@@_font_style_xits_it_tl      { italic        }
    \tl_set:Nn \g_@@_font_style_xits_bfit_tl    { bolditalic    }
    \tl_set:Nn \g_@@_font_name_xits_math_rm_tl  { xits-math     }
    \tl_set:Nn \g_@@_font_name_xits_math_bf_tl  { xits-mathbold }
  }
\tl_set:Nx \g_@@_font_name_libertinus_serif_tl
  { \g_@@_font_family_libertinus_serif_tl - \g_@@_font_style_libertinus_rm_tl }
\tl_set:Nx \g_@@_font_name_libertinus_sans_tl
  { \g_@@_font_family_libertinus_sans_tl  - \g_@@_font_style_libertinus_rm_tl }
\tl_set:Nx \g_@@_font_name_libertinus_math_tl
  { \g_@@_font_family_libertinus_math_tl  - \g_@@_font_style_libertinus_rm_tl }
\tl_set:Nx \g_@@_font_name_xits_tl
  { \g_@@_font_family_xits_tl - \g_@@_font_style_xits_rm_tl }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_load_font_garamond:}
% EB Garamond 系列。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_load_font_garamond:
  {
    \@@_setmainfont:nn { EBGaramond }
      {
        Extension      = .otf,
        UprightFont    = *-Regular,
        BoldFont       = *-Bold,
        ItalicFont     = *-Italic,
        BoldItalicFont = *-BoldItalic
      }
    \@@_setsansfont:nn { \g_@@_font_family_libertinus_sans_tl }
      {
        Extension      = .otf,
        UprightFont    = *-\g_@@_font_style_libertinus_rm_tl,
        BoldFont       = *-\g_@@_font_style_libertinus_bf_tl,
        ItalicFont     = *-\g_@@_font_style_libertinus_it_tl,
        BoldItalicFont = *-\g_@@_font_style_libertinus_bfsl_tl
      }
    \@@_setmonofont:nn { lmmonolt10 }
      {
        Extension      = .otf,
        UprightFont    = *-regular,
        BoldFont       = *-bold,
        ItalicFont     = *-oblique,
        BoldItalicFont = *-boldoblique
      }
    \@@_setmathfont:nn { Garamond-Math.otf } { }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_load_font_libertinus:}
% Libertinus 系列。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_load_font_libertinus:
  {
    \@@_setmainfont:nn { \g_@@_font_family_libertinus_serif_tl }
      {
        Extension      = .otf,
        UprightFont    = *-\g_@@_font_style_libertinus_rm_tl,
        BoldFont       = *-\g_@@_font_style_libertinus_bf_tl,
        ItalicFont     = *-\g_@@_font_style_libertinus_it_tl,
        BoldItalicFont = *-\g_@@_font_style_libertinus_bfit_tl
      }
    \@@_setsansfont:nn { \g_@@_font_family_libertinus_sans_tl }
      {
        Extension      = .otf,
        UprightFont    = *-\g_@@_font_style_libertinus_rm_tl,
        BoldFont       = *-\g_@@_font_style_libertinus_bf_tl,
        ItalicFont     = *-\g_@@_font_style_libertinus_it_tl,
        BoldItalicFont = *-\g_@@_font_style_libertinus_bfsl_tl
      }
    \@@_setmonofont:nn { lmmonolt10 }
      {
        Extension      = .otf,
        UprightFont    = *-regular,
        BoldFont       = *-bold,
        ItalicFont     = *-oblique,
        BoldItalicFont = *-boldoblique
      }
    \@@_setmathfont:nn { \g_@@_font_name_libertinus_math_tl .otf } { }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_load_font_lm:}
% Latin Modern 系列。在 \XeLaTeX{} 和 \LuaLaTeX{} 中已作为默认字体，所以仅需
% 额外处理数学部分。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_load_font_lm:
  { \@@_setmathfont:nn { latinmodern-math.otf } { } }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_load_font_palatino:}
% Palatino 系列。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_load_font_palatino:
  {
    \@@_setmainfont:nn { texgyrepagella }
      {
        Extension      = .otf,
        UprightFont    = *-regular,
        BoldFont       = *-bold,
        ItalicFont     = *-italic,
        BoldItalicFont = *-bolditalic
      }
    \@@_setsansfont:nn { \g_@@_font_family_libertinus_sans_tl }
      {
        Extension      = .otf,
        UprightFont    = *-\g_@@_font_style_libertinus_rm_tl,
        BoldFont       = *-\g_@@_font_style_libertinus_bf_tl,
        ItalicFont     = *-\g_@@_font_style_libertinus_it_tl,
        BoldItalicFont = *-\g_@@_font_style_libertinus_bfsl_tl,
        Scale          = MatchUppercase
      }
    \@@_setmonofont:nn { lmmonolt10 }
      {
        Extension      = .otf,
        UprightFont    = *-regular,
        BoldFont       = *-bold,
        ItalicFont     = *-oblique,
        BoldItalicFont = *-boldoblique
      }
    \@@_setmathfont:nn { texgyrepagella-math.otf } { }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_load_font_times:}
% Times 系列。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_load_font_times:
  {
    \@@_setmainfont:nn { \g_@@_font_family_xits_tl }
      {
        Extension          = .otf,
        UprightFont        = *-\g_@@_font_style_xits_rm_tl,
        BoldFont           = *-\g_@@_font_style_xits_bf_tl,
        ItalicFont         = *-\g_@@_font_style_xits_it_tl,
        BoldItalicFont     = *-\g_@@_font_style_xits_bfit_tl
      }
    \@@_setsansfont:nn { texgyreheros }
      {
        Extension      = .otf,
        UprightFont    = *-regular,
        BoldFont       = *-bold,
        ItalicFont     = *-italic,
        BoldItalicFont = *-bolditalic
      }
    \@@_setmonofont:nn { texgyrecursor }
      {
        Extension      = .otf,
        UprightFont    = *-regular,
        BoldFont       = *-bold,
        ItalicFont     = *-italic,
        BoldItalicFont = *-bolditalic,
        Ligatures      = CommonOff
      }
    \@@_setmathfont:nn { \g_@@_font_name_xits_math_rm_tl .otf }
      { BoldFont = \g_@@_font_name_xits_math_bf_tl .otf }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_load_font_times*:}
% Times* 系列，除数学部分外采用系统字体。
%    \begin{macrocode}
\cs_new_protected:cpn { @@_load_font_ times* : }
  {
    \@@_setmainfont:nn { Times~ New~ Roman } { }
    \@@_setsansfont:nn { Arial             } { }
    \@@_setmonofont:nn { Courier~ New      } { }
    \@@_setmathfont:nn { \g_@@_font_name_xits_math_rm_tl .otf }
      { BoldFont = \g_@@_font_name_xits_math_bf_tl .otf }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_load_cjk_font_adobe:}
% Adobe 字库。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_load_cjk_font_adobe:
  {
    \@@_setCJKmainfont:n   { AdobeSongStd-Light       }
    \@@_setCJKsansfont:n   { AdobeHeitiStd-Regular    }
    \@@_setCJKmonofont:n   { AdobeFangsongStd-Regular }
    \@@_set_cjk_font_kai:n { AdobeKaitiStd-Regular    }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_load_cjk_font_fandol:}
% Fandol 字库。注意它是安装在 TeX 发行版中的，所以使用文件名调用。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_load_cjk_font_fandol:
  {
    \@@_setCJKmainfont:nn   { FandolSong }
      {
        Extension      = .otf,
        UprightFont    = *-Regular,
        BoldFont       = *-Bold,
        ItalicFont     = *-Regular,
        BoldItalicFont = *-Bold
      }
    \@@_setCJKsansfont:nn   { FandolHei }
      {
        Extension      = .otf,
        UprightFont    = *-Regular,
        BoldFont       = *-Bold,
        ItalicFont     = *-Regular,
        BoldItalicFont = *-Bold
      }
    \@@_setCJKmonofont:nn   { FandolFang }
      {
        Extension      = .otf,
        UprightFont    = *-Regular,
        BoldFont       = *-Regular,
        ItalicFont     = *-Regular,
        BoldItalicFont = *-Regular
      }
    \@@_set_cjk_font_kai:nn { FandolKai }
      {
        Extension      = .otf,
        UprightFont    = *-Regular,
        BoldFont       = *-Regular,
        ItalicFont     = *-Regular,
        BoldItalicFont = *-Regular
      }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_load_cjk_font_founder:}
% 方正字库。虽然有粗体（方正小标宋）等，但并非免费，故这里不做处理。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_load_cjk_font_founder:
  {
    \@@_setCJKmainfont:n   { FZShuSong-Z01  }
    \@@_setCJKsansfont:n   { FZHei-B01      }
    \@@_setCJKmonofont:n   { FZFangSong-Z02 }
    \@@_set_cjk_font_kai:n { FZKai-Z03      }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_load_cjk_font_mac:}
% macOS 自带中文字体。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_load_cjk_font_mac:
  {
    \@@_setCJKmainfont:nn   { STSongti-SC }
      {
        UprightFont    = *-Light,
        BoldFont       = *-Bold,
        ItalicFont     = *-Light,
        BoldItalicFont = *-Bold
      }
    \@@_setCJKsansfont:nn   { STHeitiSC   }
      {
        UprightFont    = *-Medium,
        BoldFont       = *-Medium,
        ItalicFont     = *-Medium,
        BoldItalicFont = *-Medium
      }
    \@@_setCJKmonofont:n    { STFangsong  }
    \@@_set_cjk_font_kai:nn { STKaitiSC   }
      {
        UprightFont    = *-Regular,
        BoldFont       = *-Bold,
        ItalicFont     = *-Regular,
        BoldItalicFont = *-Bold
      }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_load_cjk_font_sinotype:}
% 华文字库。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_load_cjk_font_sinotype:
  {
    \@@_setCJKmainfont:n       { STSong     }
    \@@_setCJKsansfont:n       { STHeiti    }
    \@@_setCJKmonofont:n       { STFangsong }
    \@@_set_cjk_font_kai:n     { STKaiti    }
    \@@_set_cjk_font_xingkai:n { STXingkai  }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_load_cjk_font_sourcehan:}
% 思源宋体、思源黑体。由于没有对应的楷体和仿宋，这里直接给出警告。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_load_cjk_font_sourcehan:
  {
    \@@_setCJKmainfont:nn { SourceHanSerifSC }
      {
        UprightFont    = *-Regular,
        BoldFont       = *-Bold,
        ItalicFont     = *-Regular,
        BoldItalicFont = *-Bold
      }
    \@@_setCJKsansfont:nn { SourceHanSansSC  }
      {
        UprightFont    = *-Regular,
        BoldFont       = *-Bold,
        ItalicFont     = *-Regular,
        BoldItalicFont = *-Bold
      }
    \@@_warning:n { source-han }
  }
\@@_msg_new:nn { source-han }
  { Font~ set~ "sourcehan"~ does~ not~ contain~ kaiti~ and~ fangsong. }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_load_cjk_font_windows:}
% Windows 自带中文字体。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_load_cjk_font_windows:
  {
    \@@_setCJKmainfont:n       { SimSun     }
    \@@_setCJKsansfont:n       { SimHei     }
    \@@_setCJKmonofont:n       { SimFang    }
    \@@_set_cjk_font_kai:n     { SimKai     }
    \@@_set_cjk_font_xingkai:n { STXingkai  }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_load_font:}
% 字体加载命令。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_load_font:
  {
    \use:c { @@_load_font_     \g_@@_fontset_tl     : }
    \use:c { @@_load_cjk_font_ \g_@@_cjk_fontset_tl : }
  }
\ctex_at_end_preamble:n { \@@_load_font: }
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{数学字体设置}
% 根据 GB 3102.11--93 以及 ISO 80000-2:2009 的规定，数学表达式中
% 表示变量的拉丁字母和希腊字母均应当使用斜体。
% 这里的 |\keys_set:nn{unicode-math}| 实际相当于 \cs{unimathsetup}。
%    \begin{macrocode}
\keys_set:nn { unicode-math }
  {
    math-style = ISO,
    bold-style = ISO,
%   mathrm     = sym
  }
%    \end{macrocode}
%
% \subsubsection{字号}
%
%    \begin{macrocode}
\keys_define:nn { YNU / style }
  {
%    \end{macrocode}
%
% \begin{macro}{style/font-size}
% |font-size| 不是文档类选项，不能传给 \cls{ctexbook} 文档类，因此
% 只能手动重定义字号命令。
%    \begin{macrocode}
    font-size .choice:,
    font-size .value_required:n = true,
    font-size / -4 .code:n = { },
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\tiny,\scriptsize,\footnotesize,\small,
%   \normalsize,\large,\Large,\LARGE,\huge,\Huge}
% 默认使用小四号字，所以只有五号字需要重新设置。
%    \begin{macrocode}
    font-size /  5 .code:n =
      {
        \RenewDocumentCommand \tiny         { } { \zihao {  7 } }
        \RenewDocumentCommand \scriptsize   { } { \zihao { -6 } }
        \RenewDocumentCommand \footnotesize { } { \zihao {  6 } }
        \RenewDocumentCommand \small        { } { \zihao { -5 } }
        \RenewDocumentCommand \normalsize   { } { \zihao {  5 } }
        \RenewDocumentCommand \large        { } { \zihao { -4 } }
        \RenewDocumentCommand \Large        { } { \zihao { -3 } }
        \RenewDocumentCommand \LARGE        { } { \zihao { -2 } }
        \RenewDocumentCommand \huge         { } { \zihao {  2 } }
        \RenewDocumentCommand \Huge         { } { \zihao {  1 } }
      },
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{其他设置}
% \begin{macro}{style/fullwidth-stop}

% 设置句号形状（圆圈或是圆点）。
%    \begin{macrocode}
    fullwidth-stop .choice:,
    fullwidth-stop .value_required:n = true,
%    \end{macrocode}
%
% 利用类别码机制切换，只有显式的\FSID 会被替换。
%    \begin{macrocode}
    fullwidth-stop / catcode .code:n =
      { \@@_set_fullwidth_stop_catcode: },
%    \end{macrocode}
%
% 利用 TECKit 映射机制切换，相当于设置了 \tn{defaultCJKfontfeatures}
%^^A |{|\kvopt{Map-ping}{fullwidth-stop}|}|。这种手段会替换所有出现的\FSID，
% 并且将影响所有字体。只在 \XeTeX{} 下可用。
%    \begin{macrocode}
    fullwidth-stop / mapping .code:n =
      {
        \sys_if_engine_xetex:TF
          {
            \clist_gset:Nn \g__xeCJK_default_features_clist
              { Mapping = fullwidth-stop }
          }
          {
%    \end{macrocode}
%
% \LuaTeX{} 下改用类别码机制代替，并给出警告。
%    \begin{macrocode}
            \sys_if_engine_luatex:T
              {
                \@@_warning:n { mapping-not-available }
                \@@_set_fullwidth_stop_catcode:
              }
          }
      },
    fullwidth-stop / false .code:n = { }
  }
%    \end{macrocode}
% \end{macro}
%
% 提示信息。
%    \begin{macrocode}
\@@_msg_new:nn { mapping-not-available }
  {
    Option~ "fullwidth-stop = mapping"~ is~ not~ available~ in~ LuaTeX. \\
    "fullwidth-stop = catcode"~ will~ be~ set~ instead.
  }
%    \end{macrocode}
%
% \begin{macro}{\@@_set_fullwidth_stop_catcode:}
% 将\FSID 设置为活动符，并定义为句点\FSFW。
%    \begin{macrocode}
\cs_new:Npn \@@_set_fullwidth_stop_catcode:
  {
    \char_set_active_eq:NN ^^^^3002 \c_@@_fwid_full_stop_tl
    \char_set_catcode_active:N ^^^^3002
    \clist_map_inline:nn
      { \c_@@_orig_auth_text_a_tl }
      { \tl_set_rescan:Nno ##1 { } {##1} }
  }
%    \end{macrocode}
% \end{macro}
%
% 声明 \tn{emph} 样式序列，使得中文强调以楷体显示。
%    \begin{macrocode}
\DeclareEmphSequence
  {
    \itshape \YNU@kai,
    \upshape \CJKfamily { \CJKfamilydefault },
  }
%    \end{macrocode}
%
% \subsection{表格字号}
%
% 表格字号为五号\url{https://www.zhihu.com/question/366803177}
%    \begin{macrocode}
\RequirePackage{xpatch}
\xpatchcmd\@floatboxreset
  {\normalsize}
  {\expandafter\ifstrequal\expandafter{\@captype}{table}
      % if inside "table" env
      {\small}
      % otherwise
      {\normalsize}}
  {}{\fail}
%etoolbox对浮动体无效
\RequirePackage{etoolbox}
\AtBeginEnvironment{tabular}{\small}
\AtBeginEnvironment{longtable}{\small}
\AtBeginEnvironment{tblr}{\small}
%    \end{macrocode}
%
% \subsection{页眉页脚}
%
% 清除默认页眉页脚格式。
%    \begin{macrocode}
\fancyhf { }
%    \end{macrocode}
%
% \begin{macro}{\@@_fancy_head:nn}
% 页眉样式。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_fancy_head:nn #1#2
  {
    \fancyhead [#1]
    { \small \YNU@kai \nouppercase {#2} }
  }
%    \end{macrocode}
% \end{macro}
%
% 构建页眉，要在单面或双面下分别设置。
%
% \cs{fancyhead} 的选项中，\opt{E} 和 \opt{O} 分别表示偶数（even）和奇数（odd）， 而 \opt{L}、
% \opt{R} 和 \opt{C} 则分别表示左（left）、右（right）和中间（center）。按照通常的排版规则，
% 双面模式下，偶数页的中间页眉文字在左，奇数页则在右；单面模式下，页眉居中显示，
% \url{https://tex.stackexchange.com/questions/69100/distinguish-even-odd-pages-in-header-with-oneside-option}。
%    \begin{macrocode}
\bool_if:NTF \g_@@_twoside_bool
  {
    \@@_fancy_head:nn { OC } { \leftmark }
    \int_case:nn { \g_@@_thesis_type_int }
      {
        { 1 } { \@@_fancy_head:nn { EC } { 云南大学博士学位论文  } }
        { 2 } { \@@_fancy_head:nn { EC } { 云南大学（专业）硕士学位论文  } }
      }
  }
  {
    \@@_fancy_head:nn { C } {
      \int_if_odd:nTF \c@page
        { \leftmark }
        {
          \int_case:nn { \g_@@_thesis_type_int }
          {
            { 1 } { \tl_set:Nn \l_tmpa_tl { 云南大学博士学位论文        } }
            { 2 } { \tl_set:Nn \l_tmpa_tl { 云南大学（专业）硕士学位论文 } }
          }
          \l_tmpa_tl
        }
    }
  }
%    \end{macrocode}
%
% 构建页脚，用来显示页码。选项 \opt{C} 表示居中（center）。
%    \begin{macrocode}
\fancyfoot [ C ] { \small \thepage }
%    \end{macrocode}
%
% 关闭横线显示（未启用）。
%    \begin{macrocode}
% \RenewDocumentCommand \headrulewidth { } { 0 pt }
%    \end{macrocode}
% 
% 重定义 \tn{frontmatter}
% \begin{macrocode}{\frontmatter}
\RenewDocumentCommand{\frontmatter}{O{Roman}}
  { \pagenumbering{#1} }
% \end{macrocode}{\frontmatter}
%
% \begin{macro}{\cleardoublepage}
% 重定义 \tn{cleardoublepage}，使得偶数页面在没有内容时也不显示页眉页脚，见
% \url{https://tex.stackexchange.com/a/1683}。
%    \begin{macrocode}
\RenewDocumentCommand \cleardoublepage { }
  {
    \clearpage
    \bool_if:NT \g_@@_twoside_bool
      {
        \int_if_odd:nF \c@page
          { \hbox:n { } \thispagestyle { empty } \newpage }
      }
  }
%    \end{macrocode}
% \end{macro}
%
% \pkg{ctex} 宏包使用 \opt{heading} 选项后，会把页面格式设置为 |headings|。
% 因此必须在 \pkg{ctex} 调用之后重新设置 \cs{pagestyle} 为 |fancy|。
%    \begin{macrocode}
\pagestyle { fancy }
%    \end{macrocode}
%
% \subsection{章节标题结构}
%
% |\keys_set:nn{ctex}| 实际相当于 \cs{ctexset}。
%    \begin{macrocode}
\keys_set:nn { ctex }
  {
%    \end{macrocode}
%
% 设置章（chapter）、节（section）与小节（sub-section）标题样式。
%^^A 此处使用 \kvopt{fixskip}{true} 选项来抑制前后的多余间距。
%
%    \begin{macrocode}
    chapter =
      {
        format      = \large \normalfont \sffamily \centering,
        beforeskip  = 19 pt,
        afterskip   = 17 pt,
        number      = \chinese{chapter},
        fixskip     = true
      },
    section =
      {
        format      = \zihao{ 4 } \normalfont \sffamily \raggedright,
        beforeskip  = 3.5 ex plus 1.0 ex minus 0.2 ex,
        afterskip   = 2.7 ex plus 0.5 ex,
        fixskip     = true
      },
    subsection =
      {
        format      = \normalfont \sffamily \raggedright,
        beforeskip  = 3.25 ex plus 1.0 ex minus 0.2 ex,
        afterskip   = 2.5  ex plus 0.3 ex,
        fixskip     = true
      },
    subsubsection =
      {
        format      = \normalfont \sffamily \raggedright,
        beforeskip  = 3.25 ex plus 1.0 ex minus 0.2 ex,
        afterskip   = 2.5  ex plus 0.3 ex,
        fixskip     = true
      }
  }
%    \end{macrocode}
%
% \begin{macro}{\@@_sanitize_chapter_title:n}
% 删除章标题中的 \tn{quad}。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_sanitize_chapter_title:n #1
  {
    \tl_clear:N \l_@@_tmpa_tl
    \tl_set:No \l_@@_tmpa_tl {#1}
    \tl_remove_all:Nn \l_@@_tmpa_tl { \quad }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_chapter:n,\@@_chapter:V}
% 手动生成章的标题，用于摘要、参考文献等。
%
%    \begin{macrocode}
\cs_new_protected:Npn \@@_chapter:n #1
  {
    \@@_sanitize_chapter_title:n {#1}
    \group_begin:
      \ctexset { chapter / numbering = false }
      % 使用正则表达式匹配只包含英文字符的标题
      \regex_match:nnTF {^[A-Za-z]+$} {#1}
        {
          % 如果标题只包含英文字符，则将标题设置为罗马字体
          \chapter [ \l_@@_tmpa_tl ] {\rmfamily #1}
        }
        {
          % 如果标题不只包含英文字符，则保持默认字体
          \chapter [ \l_@@_tmpa_tl ] {#1}
        }
    \group_end:
    \@@_chapter_header:n {#1}
  }
\cs_generate_variant:Nn \@@_chapter:n { V }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_chapter_no_toc:n,\@@_chapter_no_toc:V}
% 目录自身不出现在目录中，需特别处理。参考
% \url{https://tex.stackexchange.com/a/1821}。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_chapter_no_toc:n #1
  {
    \chapter * {#1}
    \@@_sanitize_chapter_title:n {#1}
    \pdfbookmark [0] { \l_@@_tmpa_tl } { toc }
    \@@_chapter_header:n {#1}
  }
\cs_generate_variant:Nn \@@_chapter_no_toc:n { V }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_chapter_header:n}
%
% 单页模式下，目录、摘要、符号表等的页眉中间为相应标题，左右为空。这里通过居中的
% \tn{leftmark} 实现。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_chapter_header:n #1
  {
    \bool_if:NTF \g_@@_twoside_bool
      { \markboth {#1} {#1} }
      { \markboth { \hfill #1 \hfill } { } }
  }
%    \end{macrocode}
% \end{macro}
%
% \subsection{脚注}
% \subsubsection{编号样式}
%
% 各种脚注编号样式的名称。
%    \begin{macrocode}
\clist_map_inline:nn
  {
    { plain           } { plain           },
    { libertinus      } { libertinus      },
    { libertinus_neg  } { libertinus*     },
    { libertinus_sans } { libertinus-sans },
    { pifont          } { pifont          },
    { pifont_neg      } { pifont*         },
    { pifont_sans     } { pifont-sans     },
    { pifont_sans_neg } { pifont-sans*    },
    { xits            } { xits            },
    { xits_sans       } { xits-sans       },
    { xits_sans_neg   } { xits-sans*      }
  }
  { \@@_define_fn_style:nn #1 }
%    \end{macrocode}
%
% \begin{variable}{\l_@@_fn_style_tl}
% 保存当前使用的脚注编号样式。
%    \begin{macrocode}
\tl_new:N \l_@@_fn_style_tl
%    \end{macrocode}
% \end{variable}
%
%    \begin{macrocode}
\keys_define:nn { YNU / style }
  {
%    \end{macrocode}
%
% \begin{macro}{style/footnote-style}
% 脚注类型共分四大类：
% \begin{itemize}
%   \item \opt{plain}：使用当前字体；
%   \item \opt{libertinus}：取自 Libertinus Serif 和 Libertinus Sans
%     字体；
%   \item \opt{pifont}：使用 \pkg{pifont} 宏包；
%   \item \opt{xits}：取自 XITS 字体。
% \end{itemize}
% 不带任何修饰的为衬线阳文符号，带“|sans|”的为无衬线符号，带“|*|”的
% 为阴文版本。
%
%    \begin{macrocode}
    footnote-style .choices:nn =
      {
        plain,
        libertinus, libertinus*, libertinus-sans,
        pifont,     pifont*,     pifont-sans,     pifont-sans*,
        xits,                    xits-sans,       xits-sans*
      }
%    \end{macrocode}
%
% 若使用 \opt{pifont} 类型，则需引入 \pkg{pifont} 宏包。
%    \begin{macrocode}
      {
        \tl_gset_eq:NN \l_@@_fn_style_tl \l_keys_choice_tl
        \int_compare:nT { 5 <= \l_keys_choice_int <= 8 }
          { \RequirePackage { pifont } }
      },
    footnote-style .value_required:n = true
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_fn_symbol_libertinus:n}
% \opt{libertinus} 普通版。\numrange{1}{20} 为数字，\numrange{21}{46}
% 为小写英文字母，\numrange{47}{72} 为大写英文字母。
%    \begin{macrocode}
\cs_new:Npn \@@_fn_symbol_libertinus:n #1
  {
    \int_compare:nTF { #1 >= 21 }
      {
        \int_compare:nTF { #1 >= 47 }
          { \@@_symbol:n { \int_eval:n { "24B6 - 47 + #1 } } }
          { \@@_symbol:n { \int_eval:n { "24D0 - 21 + #1 } } }
      }
      { \@@_symbol:n { \int_eval:n { "2460 - 1 + #1 } } }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_fn_symbol_libertinus_neg:n}
% \opt{libertinus} 阴文衬线版。只含 \numrange{1}{20}。
%    \begin{macrocode}
\cs_new:Npn \@@_fn_symbol_libertinus_neg:n #1
  {
    \int_compare:nTF { #1 >= 11 }
      { \@@_symbol:n { \int_eval:n { "24EB - 11 + #1 } } }
      { \@@_symbol:n { \int_eval:n { "2776 -  1 + #1 } } }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_fn_symbol_libertinus_sans:n}
% \opt{libertinus} 阳文无衬线版。符号排列与普通版相同。
%    \begin{macrocode}
\cs_new_eq:NN \@@_fn_symbol_libertinus_sans:n \@@_fn_symbol_libertinus:n
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_fn_symbol_pifont:n}
% \opt{pifont} 普通版。以下四种都只包含 \numrange{1}{10}。
%    \begin{macrocode}
\cs_new:Npn \@@_fn_symbol_pifont:n #1
  { \ding { \int_eval:n { 171 + #1 } } }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_fn_symbol_pifont_neg:n}
% \opt{pifont} 阴文衬线版。
%    \begin{macrocode}
\cs_new:Npn \@@_fn_symbol_pifont_neg:n #1
  { \ding { \int_eval:n { 181 + #1 } } }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_fn_symbol_pifont_sans:n}
% \opt{pifont} 阳文无衬线版。
%    \begin{macrocode}
\cs_new:Npn \@@_fn_symbol_pifont_sans:n #1
  { \ding { \int_eval:n { 191 + #1 } } }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_fn_symbol_pifont_sans_neg:n}
% \opt{pifont} 阴文无衬线版。
%    \begin{macrocode}
\cs_new:Npn \@@_fn_symbol_pifont_sans_neg:n #1
  { \ding { \int_eval:n { 201 + #1 } } }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_fn_symbol_xits:n}
% \opt{xits} 普通版。\numrange{1}{9} 为数字，\numrange{10}{35}
% 为小写英文字母，\numrange{36}{61} 为大写英文字母。
%    \begin{macrocode}
\cs_new:Npn \@@_fn_symbol_xits:n #1
  {
    \int_compare:nTF { #1 >= 10 }
      {
        \int_compare:nTF { #1 >= 36 }
          { \@@_symbol:n { \int_eval:n { "24B6 - 36 + #1 } } }
          { \@@_symbol:n { \int_eval:n { "24D0 - 10 + #1 } } }
      }
      { \@@_symbol:n { \int_eval:n { "2460 - 1 + #1 } } }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_fn_symbol_xits_sans:n}
% \opt{xits} 阳文无衬线版。只包含 \numrange{1}{10}。
%    \begin{macrocode}
\cs_new:Npn \@@_fn_symbol_xits_sans:n #1
  { \@@_symbol:n { \int_eval:n { "2780 - 1 + #1 } } }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_fn_symbol_xits_sans_neg:n}
% \opt{xits} 阴文无衬线版。也只包含 \numrange{1}{10}。
%    \begin{macrocode}
\cs_new:Npn \@@_fn_symbol_xits_sans_neg:n #1
  { \@@_symbol:n { \int_eval:n { "278A - 1 + #1 } } }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\thefootnote}
%
% 重定义脚注编号。
%    \begin{macrocode}
\cs_set:Npn \thefootnote { \YNU_footnote_number:N \c@footnote }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\YNU_footnote_number:N}
% 脚注编号样式。
%    \begin{macrocode}
\cs_new:Npn \YNU_footnote_number:N #1
  {
    \tl_case:NnF \l_@@_fn_style_tl
      {
%    \end{macrocode}
% \opt{plain} 类型直接使用计数器 |footnote| 的值。
%    \begin{macrocode}
        \c_@@_fn_style_plain_tl
          { \int_use:N #1 }
%    \end{macrocode}
% \opt{libertinus} 类型需要使用 Libertinus Serif 或
% Libertinus Sans 字体。
%    \begin{macrocode}
        \c_@@_fn_style_libertinus_tl
          {
            \fontspec { \g_@@_font_name_libertinus_serif_tl .otf }
            \@@_fn_symbol_libertinus:n {#1}
          }
        \c_@@_fn_style_libertinus_neg_tl
          {
            \fontspec { \g_@@_font_name_libertinus_serif_tl .otf }
            \@@_fn_symbol_libertinus_neg:n {#1}
          }
        \c_@@_fn_style_libertinus_sans_tl
          {
            \fontspec { \g_@@_font_name_libertinus_sans_tl .otf }
            \@@_fn_symbol_libertinus_sans:n {#1}
          }
%    \end{macrocode}
% \opt{pifont} 类型无需进行额外的操作。
%    \begin{macrocode}
        \c_@@_fn_style_pifont_tl
          { \@@_fn_symbol_pifont:n {#1} }
        \c_@@_fn_style_pifont_neg_tl
          { \@@_fn_symbol_pifont_neg:n {#1} }
        \c_@@_fn_style_pifont_sans_tl
          { \@@_fn_symbol_pifont_sans:n {#1} }
        \c_@@_fn_style_pifont_sans_neg_tl
          { \@@_fn_symbol_pifont_sans_neg:n {#1} }
%    \end{macrocode}
% \opt{xits} 类型需要临时切换数学字体。
%    \begin{macrocode}
        \c_@@_fn_style_xits_tl
          {
            \fontspec { \g_@@_font_name_xits_tl .otf }
            \@@_fn_symbol_xits:n {#1}
          }
        \c_@@_fn_style_xits_sans_tl
          {
            \fontspec { \g_@@_font_name_xits_tl .otf }
            \@@_fn_symbol_xits_sans:n {#1}
          }
        \c_@@_fn_style_xits_sans_neg_tl
          {
            \fontspec { \g_@@_font_name_xits_tl .otf }
            \@@_fn_symbol_xits_sans_neg:n {#1}
          }
      }
%    \end{macrocode}
% 变量 \cs{l_@@_fn_style_tl} 保存的类型未知时，默认使用 \opt{plain}
% 类型。
%    \begin{macrocode}
      { \int_use:N #1 }
  }
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{整体样式}
%
% \begin{macro}[int]{\@makefntext}
%
% 重定义内部脚注文字命令，使脚注编号不使用上标，宽度为 \qty{1.5}{em}。
% 见 \url{http://tex.stackexchange.com/q/19844} 和
% \url{https://www.zhihu.com/question/53030087}。
%    \begin{macrocode}
\cs_set:Npn \@makefntext #1
  {
    \mode_leave_vertical:
    \hbox_to_wd:nn { 1.5 em } { \@thefnmark \hfil }
    #1
  }
%    \end{macrocode}
% \end{macro}
%
% \subsection{定理环境}
%
% \begin{variable}{\c_@@_thm_style_plain_clist,
%   \c_@@_thm_style_break_clist}
% 保存 \opt{plain}、\opt{break} 两种类型的定理样式名称。
%    \begin{macrocode}
\clist_const:Nn \c_@@_thm_style_plain_clist
  { plain, margin, change }
\clist_const:Nn \c_@@_thm_style_break_clist
  { break, marginbreak, changebreak }
%    \end{macrocode}
% \end{variable}
%
% \begin{variable}{\l_@@_thm_style_tl,
%   \l_@@_thm_header_font_tl,
%   \l_@@_thm_body_font_tl,
%   \l_@@_thm_qed_tl,
%   \l_@@_thm_counter_tl}
% 定理所需的一些字段。
%    \begin{macrocode}
\tl_new:N \l_@@_thm_style_tl
\tl_new:N \l_@@_thm_header_font_tl
\tl_new:N \l_@@_thm_body_font_tl
\tl_new:N \l_@@_thm_qed_tl
\tl_new:N \l_@@_thm_counter_tl
%    \end{macrocode}
% \end{variable}
%
% \begin{macro}{theorem/style,
%   theorem/header-font,
%   theorem/body-font,
%   theorem/qed,
%   theorem/counter}
% 定义 |YNU/theorem| 键值类。
%    \begin{macrocode}
\keys_define:nn { YNU / theorem }
  {
    style       .tl_set:N  = \l_@@_thm_style_tl,
    header-font .tl_set:N  = \l_@@_thm_header_font_tl,
    body-font   .tl_set:N  = \l_@@_thm_body_font_tl,
    qed         .tl_set:N  = \l_@@_thm_qed_tl,
    counter     .tl_set:N  = \l_@@_thm_counter_tl
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_thm_ntheorem_style:n,\@@_thm_ntheorem_new:w}
% 拷贝 \pkg{ntheorem} 命令。
%    \begin{macrocode}
\cs_new_eq:NN \@@_thm_ntheorem_style:n \theoremstyle
\cs_new_eq:NN \@@_thm_ntheorem_new:w   \newtheorem
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\newtheorem}
% 定义新的定理环境。
%    \begin{macrocode}
\RenewDocumentCommand \newtheorem { s o m m }
  {
%    \end{macrocode}
% 默认情况下，由 \cs{newtheorem*} 创建的定理其证毕符号为 \cs{QED}，
% 而由 \cs{new\-the\-orem} 创建的则不带证毕符号。符号 \cs{QED} 由
% \pkg{unicode-math} 宏包提供。
%    \begin{macrocode}
    \IfBooleanTF {#1}
      { \tl_set:Nn \l_@@_thm_qed_tl { \ensuremath { \QED } } }
      { \tl_set:Nn \l_@@_thm_qed_tl { } }
%    \end{macrocode}
% 设置默认样式为 \opt{plain}。
%    \begin{macrocode}
%
\tl_set:Nn \l_@@_thm_style_tl { plain }
%    \end{macrocode}
% 处理可选参数。利用 |YNU/theorem| 键值对设置，并按此修改证毕符号、
% 定理头字体和定理正文字体。
%    \begin{macrocode}
    \IfValueT {#2} { \keys_set:nn { YNU / theorem } {#2} }
    \YNU_thm_set_header_font:V \l_@@_thm_header_font_tl
    \YNU_thm_set_body_font:V   \l_@@_thm_body_font_tl
    \YNU_thm_set_qed:V         \l_@@_thm_qed_tl
%    \end{macrocode}
% \cs{newtheorem} 负责创建编号定理，而 \cs{newtheorem*}
% 则负责创建无编号定理。以下分这两种情况处理。
%    \begin{macrocode}
    \IfBooleanTF {#1}
      {
%    \end{macrocode}
% 带 |*| 的版本原则上只接受 \opt{plain} 和 \opt{break} 两种样式，
% 其余样式将被转换成这两者其中之一。
%    \begin{macrocode}
        \clist_if_in:nVF { plain, break } \l_@@_thm_style_tl
          {
            \clist_if_in:NVTF
              \c_@@_thm_style_plain_clist \l_@@_thm_style_tl
              { \@@_thm_redefine_style:n { plain } }
              {
                \clist_if_in:NVTF
                  \c_@@_thm_style_break_clist \l_@@_thm_style_tl
                  { \@@_thm_redefine_style:n { break } }
                  {
                    \@@_error:nx { unknown-theorem-style }
                      { \l_@@_thm_style_tl }
                  }
              }
          }
%    \end{macrocode}
% \pkg{ntheorem} 宏包提供的无编号定理带有 |nonumber| 前缀，
% 这里将其加上。
%    \begin{macrocode}
        \tl_put_left:Nn \l_@@_thm_style_tl { nonumber }
        \YNU_thm_new_no_number:Vxx \l_@@_thm_style_tl {#3} {#4}
      }
      {
%    \end{macrocode}
% 不带 |*| 的版本支持不含“|nonumber|”的所有定理样式。
%    \begin{macrocode}
        \clist_clear:N \l_@@_tmpa_clist
        \clist_concat:NNN \l_@@_tmpa_clist
          \c_@@_thm_style_plain_clist \c_@@_thm_style_break_clist
        \clist_if_in:NVF \l_@@_tmpa_clist \l_@@_thm_style_tl
          {
            \@@_error:nx { unknown-theorem-style }
              { \l_@@_thm_style_tl }
          }
        \YNU_thm_new:VVxx \l_@@_thm_style_tl \l_@@_thm_counter_tl
          {#3} {#4}
      }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_thm_redefine_style:n}
% 重定义定理样式，并给出警告。
%    \begin{macrocode}
\cs_new:Npn \@@_thm_redefine_style:n #1
  {
    \@@_warning:nxx { redefine-theorem-style }
      {#1} { \l_@@_thm_style_tl }
    \tl_set:Nn \l_@@_thm_style_tl {#1}
  }
%    \end{macrocode}
% \end{macro}
%
% 提示信息。
%    \begin{macrocode}
\@@_msg_new:nn { redefine-theorem-style }
  { Theorem~ style~ "#2"~ will~ be~ redefined~ as~ "#1". }
\@@_msg_new:nn { unknown-theorem-style }
  { Theorem~ style~ "#1"~ is~ unknown. }
%    \end{macrocode}
%
% \begin{macro}{\YNU_thm_new:nnnn,\YNU_thm_new:VVxx}
% 带编号的定理环境。
% \begin{arguments}
%   \item 样式
%   \item 计数器
%   \item 定理环境名称
%   \item 定理头文字
% \end{arguments}
%    \begin{macrocode}
\cs_new:Npn \YNU_thm_new:nnnn #1#2#3#4
  {
    \@@_thm_ntheorem_style:n {#1}
    \@@_thm_ntheorem_new:w   {#3} {#4} [#2]
  }
\cs_generate_variant:Nn \YNU_thm_new:nnnn { VVxx }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\YNU_thm_new_no_number:nnn,
%   \YNU_thm_new_no_number:Vxx}
% 不带编号的定理环境。
% \begin{arguments}
%   \item 样式
%   \item 定理环境名称
%   \item 定理头文字
% \end{arguments}
%    \begin{macrocode}
\cs_new:Npn \YNU_thm_new_no_number:nnn #1#2#3
  {
    \@@_thm_ntheorem_style:n {#1}
    \@@_thm_ntheorem_new:w   {#2} {#3}
  }
\cs_generate_variant:Nn \YNU_thm_new_no_number:nnn { Vxx }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\YNU_thm_set_qed:n,
%   \YNU_thm_set_header_font:n,
%   \YNU_thm_set_body_font:n,
%   \YNU_thm_set_qed:V,
%   \YNU_thm_set_header_font:V,
%   \YNU_thm_set_body_font:V}
% 封装 \pkg{ntheorem} 宏包提供的若干命令，分别用以设置证毕符号、
% 定理头字体和定理正文字体。
%    \begin{macrocode}
\cs_new:Npn \YNU_thm_set_qed:n         #1 { \theoremsymbol     {#1} }
\cs_new:Npn \YNU_thm_set_header_font:n #1 { \theoremheaderfont {#1} }
\cs_new:Npn \YNU_thm_set_body_font:n   #1 { \theorembodyfont   {#1} }
\cs_generate_variant:Nn \YNU_thm_set_qed:n         { V }
\cs_generate_variant:Nn \YNU_thm_set_header_font:n { V }
\cs_generate_variant:Nn \YNU_thm_set_body_font:n   { V }
%    \end{macrocode}
% \end{macro}
%
% \subsection{图表绘制；浮动体}
%
% 分别设置浮动体 \env{figure} 和 \env{table} 的标题样式。
%    \begin{macrocode}
\captionsetup [ figure ]
  {
    font      = small,
    labelfont = bf,
    textfont  = bf,
    labelsep  = quad,
    position  = top
  }
\captionsetup [ table  ]
  {
    font      = small,
    labelfont = bf,
    textfont  = bf,
    labelsep  = quad,
    position  = bottom
  }
%    \end{macrocode}
%
% \begin{macro}{\thefigure,\thetable}
% 重定义图表编号。
%    \begin{macrocode}
\cs_set:Npn \thefigure
  { \thechapter - \@@_arabic:n { figure } }
\cs_set:Npn \thetable
  { \thechapter - \@@_arabic:n { table  } }
%    \end{macrocode}
% \end{macro}
%
% \subsection{封面}
%
% \subsubsection{信息录入}
%
% \begin{variable}{\l_@@_info_title_tl,
%   \l_@@_info_date_tl,
%   \l_@@_info_author_tl,
%   \l_@@_info_supervisor_tl,
%   \l_@@_info_professional_title_tl,
%   \l_@@_info_department_tl,
%   \l_@@_info_major_tl,
%   \l_@@_info_student_id_tl,
%   \l_@@_info_school_id_tl,
%   \l_@@_info_clc_tl,
%   \l_@@_info_jel_tl,
%   \l_@@_info_instructors_clist,
%   \l_@@_info_keywords_clist}
% 封面所需的一些字段。
%    \begin{macrocode}
\clist_map_inline:nn
  {
    title, date, author, supervisor, professional_title, department, major, major_professional, student_id, UDC, number, clc, jel
  }
  { \tl_new:c { l_@@_info_ #1 _tl } }
\clist_map_inline:nn
  {
    instructors, supervisor, keywords, pre_review, pre_defense, submission,defense
  }
  { \clist_new:c { l_@@_info_ #1 _clist } }
%    \end{macrocode}
% \end{variable}
%
% \begin{variable}{\l_@@_info_title_en_tl,
%   \l_@@_info_author_en_tl,
%   \l_@@_info_supervisor_en_tl,
%   \l_@@_info_department_en_tl,
%   \l_@@_info_major_en_tl,
%   \l_@@_info_keywords_en_clist}
% 对应的英文字段。
%    \begin{macrocode}
\clist_map_inline:nn
  { title, author, supervisor, department, major }
  { \tl_new:c { l_@@_info_ #1 _en_tl } }
\clist_new:N \l_@@_info_keywords_en_clist
%    \end{macrocode}
% \end{variable}
%
% \begin{variable}{\l_@@_info_degree_type_int}
% 学位类型。1 为学术学位，2 为专业学位。
%    \begin{macrocode}
\int_new:N \l_@@_info_degree_type_int
%    \end{macrocode}
% \end{variable}
%
% 定义 |YNU/info| 键值类。
%    \begin{macrocode}
\keys_define:nn { YNU / info }
  {
%    \end{macrocode}
%
% \begin{macro}{info/degree}
% 学位类型。只对硕士论文有效。
%    \begin{macrocode}
    degree      .choices:nn  =
      { academic, professional }
      { \int_set_eq:NN \l_@@_info_degree_type_int \l_keys_choice_int },
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/title,info/title*}
% 论文题目。以下带星号的项目均表示相应的英文字段。
%    \begin{macrocode}
    title       .tl_set:N    = \l_@@_info_title_tl,
    title*      .tl_set:N    = \l_@@_info_title_en_tl,
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/date}
% 论文完成日期。
%    \begin{macrocode}
    date        .tl_set:N    = \l_@@_info_date_tl,
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/author,info/author*}
% 作者姓名。
%    \begin{macrocode}
    author      .tl_set:N    = \l_@@_info_author_tl,
    author*     .tl_set:N    = \l_@@_info_author_en_tl,
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/supervisor,info/supervisor*}
% 导师姓名。
%    \begin{macrocode}
    supervisor  .clist_set:N = \l_@@_info_supervisor_clist,
%   supervisor*  .clist_set:N = \l_@@_info_supervisor_en_clist, 
%
%   supervisor  .tl_set:N    = \l_@@_info_supervisor_tl,
%   supervisor* .tl_set:N    = \l_@@_info_supervisor_en_tl,
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/pre-review,info/pre-defense,info/submission,info/defense}
% 论文预审，论文预答辩，论文送审，论文答辩
%    \begin{macrocode}
    pre-review .clist_set:N = \l_@@_info_pre_review_clist,
    pre-defense  .clist_set:N = \l_@@_info_pre_defense_clist,
    submission   .clist_set:N = \l_@@_info_submission_clist,
    defense      .clist_set:N = \l_@@_info_defense_clist,
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/department,info/department*}
% 院系。
%    \begin{macrocode}
    department  .tl_set:N    = \l_@@_info_department_tl,
%   department* .tl_set:N    = \l_@@_info_department_en_tl,
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/major,info/major*}
% 专业。
%    \begin{macrocode}
    major       .tl_set:N    = \l_@@_info_major_tl,
%   major*      .tl_set:N    = \l_@@_info_major_en_tl,
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/major_professional}
% 研究领域。
%    \begin{macrocode}
    major_professional       .tl_set:N    = \l_@@_info_major_professional_tl,
%   major*      .tl_set:N    = \l_@@_info_major_en_tl,
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/student-id}
% 学号。
%    \begin{macrocode}
    student-id  .tl_set:N    = \l_@@_info_student_id_tl,
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/school-id}
% 学校代码。
%    \begin{macrocode}
    school-id   .tl_set:N    = \l_@@_info_school_id_tl,
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/keywords,info/keywords*}
% 论文关键字。
%    \begin{macrocode}
    keywords    .clist_set:N = \l_@@_info_keywords_clist,
    keywords*   .clist_set:N = \l_@@_info_keywords_en_clist,
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/clc,info/jel}
% 中图分类号和 JEL 分类号。
%    \begin{macrocode}
    clc         .tl_set:N    = \l_@@_info_clc_tl,
%    jel         .tl_set:N    = \l_@@_info_jel_tl
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{variable}{\l_@@_cover_logo_tl,\l_@@_cover_logo_size_clist}
%    \begin{macrocode}
\tl_new:N    \l_@@_cover_logo_tl
\clist_new:N \l_@@_cover_logo_size_clist
%    \end{macrocode}
% \end{variable}
%
% \begin{macro}{style/logo,style/logo-size}
% 校名图片的文件名和尺寸。
%    \begin{macrocode}
\keys_define:nn { YNU / style }
  {
    logo      .tl_set:N    = \l_@@_cover_logo_tl,
    logo-size .clist_set:N = \l_@@_cover_logo_size_clist
  }
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{密级}
%
% \begin{variable}{\l_@@_secret_bool}
% 是否显示密级。
%    \begin{macrocode}
%\bool_new:N \l_@@_secret_bool
%    \end{macrocode}
% \end{variable}
%
% \begin{variable}{\l_@@_info_secret_level_tl,\l_@@_secret_level_item_int}
% 保存当前的密级,密级的第几个item。
%    \begin{macrocode}
\tl_new:N \l_@@_info_secret_level_tl
\int_new:N \l_@@_secret_level_item_int
%    \end{macrocode}
% \end{variable}
%
%    \begin{macrocode}
\keys_define:nn { YNU / info }
  {
%    \end{macrocode}
%
% \begin{macro}{info/secret-level}
% 密级。\opt{none} 表示公开，\opt{i}、\opt{ii}、\opt{iii} 分别为
% 内部、秘密、机密、绝密。
%    \begin{macrocode}
    secret-level .choices:nn  =
      { none, i, ii, iii, iv }
      { 
        \int_set_eq:NN \l_@@_secret_level_item_int \l_keys_choice_int
        \tl_set:Nn \l_@@_info_secret_level_tl
          {
            \clist_item:Nn \c_@@_secret_clist
              { \l_@@_secret_level_item_int }
          }
      },
    secret-level .value_required:n = true,
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{info/secret-year}
% 保密年限。
%    \begin{macrocode}
%    secret-year  .tl_set:N = \l_@@_info_secret_year_tl
  }
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{定义内部函数}
%
% \begin{macro}{\@@_spread_box:nn}
% 分散对齐的水平盒子。
% \begin{arguments}
%   \item 宽度
%   \item 内容
% \end{arguments}
% 利用 \cs{tl_map_inline:nn} 在字符间插入 \tn{hfil}；紧随其后的 \tn{unskip}
% 将会去掉最后一个 \tn{hfil}。见 \url{https://tex.stackexchange.com/q/169689}。
% |#2| 需要完全展开以避免 underfull 警告。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_spread_box:nn #1#2
  {
    \mode_leave_vertical:
    \hbox_to_wd:nn {#1}
      { \tl_map_inline:xn {#2} { ##1 \hfil } \unskip }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_center_box:nn,\@@_center_box:Vn}
% 居中对齐的水平盒子。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_center_box:nn #1#2
  {
    \mode_leave_vertical:
    \hbox_to_wd:nn {#1} { \hfil #2 \hfil }
  }
\cs_generate_variant:Nn \@@_center_box:nn  { Vn }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_fixed_width_box:nn}
% 限宽盒子（允许换行）。
%    \begin{macrocode}
\cs_new:Npn \@@_fixed_width_box:nn #1#2
  { \parbox[t][0cm][l] {#1} {#2} }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_fixed_width_center_box:nn}
% 居中对齐的限宽盒子（允许换行）。
%    \begin{macrocode}
\cs_new:Npn \@@_fixed_width_center_box:nn #1#2
  { \parbox {#1} { \centering #2 } }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_get_text_width:Nn,\@@_get_text_width:NV}
% 获取文本宽度，并存入 |dim| 型变量。
% \begin{arguments}
%   \item |dim| 型变量
%   \item 内容
% \end{arguments}
%    \begin{macrocode}
\cs_new:Npn \@@_get_text_width:Nn #1#2
  {
    \hbox_set:Nn \l_@@_tmpa_box {#2}
    \dim_set:Nn #1 { \box_wd:N \l_@@_tmpa_box }
  }
\cs_generate_variant:Nn \@@_get_text_width:Nn { NV }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_get_max_text_width:NN}
%
% 获取多个文本中的最大宽度，并存入 |dim| 型变量。
% \begin{arguments}
%   \item |dim| 型变量
%   \item 文本 |clist|
% \end{arguments}
% 当 \cs{l_@@_tmpa_clist} 非空时，弹出最后一个元素
% 赋给 \cs{l_@@_tmpa_tl}，获取其长度后与 |#1| 进行比较，
% 二者中较大的那一个将成为 |#1| 的新值。
% 不断循环，直至 \cs{l_@@_tmpa_clist} 为空。
%    \begin{macrocode}
\cs_new:Npn \@@_get_max_text_width:NN #1#2
  {
%    \end{macrocode}
% 这里用 |group| 确保局部变量不会被污染。
%    \begin{macrocode}
    \group_begin:
      \clist_set_eq:NN \l_@@_tmpa_clist #2
      \bool_until_do:nn { \clist_if_empty_p:N \l_@@_tmpa_clist }
        {
          \clist_pop:NN \l_@@_tmpa_clist \l_@@_tmpa_tl
          \@@_get_text_width:NV \l_@@_tmpa_dim \l_@@_tmpa_tl
          \dim_gset:Nn #1 { \dim_max:nn {#1} { \l_@@_tmpa_dim } }
        }
    \group_end:
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_blank_underline:n}
%
% 下划线占位符。|#1|: 长度。
%    \begin{macrocode}
\cs_new:Npn \@@_blank_underline:n #1
  { \rule [ -0.5 ex ] {#1} { 0.4 pt } }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_line_spread:N,\@@_line_spread:n}
% 设置行距。|#1|: 行距倍数 |fp| 变量。
%    \begin{macrocode}
\cs_new:Npn \@@_line_spread:N #1
  { \linespread { \fp_use:N #1 } \selectfont }
\cs_new:Npn \@@_line_spread:n #1
  { \linespread {#1} \selectfont }
%    \end{macrocode}
% 正文行距1.5倍。
%    \begin{macrocode}
\@@_line_spread:n {1.5}
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{封面各部件}
%
% \begin{macro}{\@@_cover_id:,\@@_cover_id_aux:n}
% 左上角的分类信息。
%    \begin{macrocode}
\newcommand\reduline{\bgroup 是\markoverwith
{\textcolor{red}{\rule[-0.5ex]{2pt}{0.4pt}}}\ULon}
\cs_new_protected:Npn \@@_cover_id:
  {
    \@@_fixed_width_box:nn { \textwidth }
      { 
        \@@_cover_aux_a:nnnn { 3em }{ clc          }{ 6em }{ 1mm } \hskip 1em
        \@@_cover_aux_a:nnnn { 2em }{ secret_level }{ 6em }{ 1mm } \par
        \@@_cover_aux_a:nnnn { 3em }{ UDC          }{ 6em }{ 1mm } \hskip 1em
        \@@_cover_aux_a:nnnn { 2em }{ number       }{ 6em }{ 1mm } \par
      }
  }
%    \end{macrocode}
% 
%    \begin{macrocode}
\cs_new:Npn \@@_cover_aux:nnnn #1#2#3#4
  {
    \@@_spread_box:nn { #1 } { \tl_use:c { c_@@_name_ #2 _tl } } 
    \UnderlineCentered{ #3 } { #4 } { \tl_use:c { l_@@_info_ #2 _tl } }
  }
\cs_new:Npn \@@_cover_aux_a:nnnn #1#2#3#4
  {
    \@@_center_box:nn { #1 } { \tl_use:c { c_@@_name_ #2 _tl } } 
    \c_@@_fwid_colon_tl
    \UnderlineCentered{ #3 } { #4 } { \tl_use:c { l_@@_info_ #2 _tl } }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_cover_logo:}
% 插入校名图片。根据参数 \opt{width} 和 \opt{height} 是否为空依次
% 判断。\cs{l_@@_cover_logo_size_clist} 中超过两个的参数将被忽略。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_cover_logo:
  { 
    \@@_fixed_width_center_box:nn
        { \textwidth               } 
        { \YNUnameTwo[scale=0.045] }
%    \clist_pop:NN   \l_@@_cover_logo_size_clist \l_@@_tmpa_tl
%    \clist_pop:NNTF \l_@@_cover_logo_size_clist \l_@@_tmpb_tl
%      {
%        \tl_if_empty:NTF \l_@@_tmpa_tl
%          { \includegraphics [ height = \l_@@_tmpb_tl ] }
%          {
%            \includegraphics
%              [ width  = \l_@@_tmpa_tl, height = \l_@@_tmpb_tl ]
%          }
%      }
%      { \includegraphics [ width = \l_@@_tmpa_tl ] }
%    { \l_@@_cover_logo_tl }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_cover_type:}
% 论文类型。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_cover_type:
  {
    \tl_set:Nx \l_@@_tmpa_tl
      {
        \clist_item:Nn \c_@@_thesis_type_clist
          { \g_@@_thesis_type_int }
      }
      \@@_spread_box:nn { \textwidth } { \l_@@_tmpa_tl }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_cover_degree:}
% 学位类型。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_cover_degree:
  {
%    \int_compare:nT { \g_@@_thesis_type_int != 3 }
%      {
%        \c_@@_fwid_left_paren_tl
%        \clist_item:Nn \c_@@_degree_type_clist
%          { \l_@@_info_degree_type_int }
%        \c_@@_fwid_right_paren_tl
%      }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_cover_title:,\@@_cover_title_en:}
% 中英文标题
%    \begin{macrocode}
\cs_new_protected:Npn \@@_cover_title:
  {
    \@@_fixed_width_center_box:nn
        { \textwidth } 
        { 题目 \hskip 1\ccwd 
          \@@_fixed_width_box:nn
          { 16\ccwd }
          { \UnderlineCentered{16\ccwd}{1.5mm}{ \l_@@_info_title_tl } }
        }
  }
\cs_new_protected:Npn \@@_cover_title_en:
  {
    \@@_fixed_width_center_box:nn
        { \textwidth } 
        { Title \hskip 1\ccwd
          \@@_fixed_width_box:nn
          { 16\ccwd }
          { \UnderlineCentered{16\ccwd}{1.7mm}{ \l_@@_info_title_en_tl } }
        }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_cover_info:,\l_@@_cover_info_left_width_tl}

% 信息栏。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_cover_info:
  {
    \@@_fixed_width_box:nn { 22.5em }
      {
        \@@_cover_aux:nnnn 
          { 8em  }{ department }
          { 14.5em }{ 1.5mm      } \par
        \@@_cover_aux:nnnn 
          { 5em  }{ major }
          { 17.5em }{ 1.5mm } \par
        \@@_cover_aux:nnnn 
          { 5em  }{ major_professional }
          { 17.5em }{ 1.5mm              } \par
        \@@_cover_aux:nnnn 
          { 5em }{ author }
          { 6.5em }{ 1.5mm  } \hskip 1em
        \@@_cover_aux:nnnn 
          { 2em }{ student_id }
          { 8em }{ 1.5mm      } \par
        \int_case:nn {\g_@@_thesis_type_int}
        {
          { 1 }{
            \bool_until_do:nn { \clist_if_empty_p:N \l_@@_info_supervisor_clist }{
              \clist_pop:NN \l_@@_info_supervisor_clist \l_@@_info_supervisor_tl
              \clist_pop:NN \l_@@_info_supervisor_clist \l_@@_info_professional_title_tl
              \@@_cover_aux:nnnn
                { 5em }{ supervisor }
                { 6.5em }{ 1.5mm      } \hskip 1em
              \@@_cover_aux:nnnn 
                { 2em }{ professional_title }
                { 8em }{ 1.5mm              } \par
            }
          }
          { 2 }{
            \clist_pop:NN \l_@@_info_supervisor_clist \l_@@_info_supervisor_tl
            \clist_pop:NN \l_@@_info_supervisor_clist \l_@@_info_professional_title_tl
            \@@_cover_aux:nnnn
              { 5em }{ supervisor }
              { 6.5em }{ 1.5mm      } \hskip 1em
            \@@_cover_aux:nnnn 
              { 2em }{ professional_title }
              { 8em }{ 1.5mm              } \par
          }
        }
      }
  }
%    \end{macrocode}
% 日期
%    \begin{macrocode}
\cs_new_protected:Npn \@@_cover_date:
  {
    \@@_fixed_width_center_box:nn
      { \textwidth         } 
      { \number\year 年 \number\month 月 }
  }
%    \end{macrocode}
%    \begin{macrocode}
%\cs_new_protected:Npn \@@_cover_info:
%  {
%    \tl_set:Nx \l_@@_cover_info_left_width_tl
%      {
%        \int_case:nn { \l_@@_info_degree_type_int }
%          {
%            { 1 } { 6 em }
%            { 2 } { 9 em }
%          }
%      }
%    \begin{minipage} [ c ] { \textwidth }
%      \centering \zihao { 4 }
%    \end{macrocode}
% 读取左侧名称字段。
%    \begin{macrocode}
%      \clist_set:Nx \l_@@_tmpa_clist
%        {
%          \c_@@_name_department_tl,
%          \int_case:nn { \l_@@_info_degree_type_int }
%            {
%              { 1 } { \c_@@_name_major_tl              }
%              { 2 } { \c_@@_name_major_professional_tl }
%            },
%          \c_@@_name_author_tl,
%          \c_@@_name_supervisor_tl,
%          \c_@@_name_date_tl,
%        }
%    \end{macrocode}
% 设置信息栏右侧宽度。读取各字段，并将最宽者的宽度赋给
% \cs{l_@@_tmpb_dim}。
%    \begin{macrocode}
%      \clist_set:Nx \l_@@_tmpb_clist
%        {
%          { \l_@@_info_department_tl },
%          { \l_@@_info_major_tl      },
%          { \l_@@_info_author_tl     },
%          { \l_@@_info_supervisor_tl },
%          { \l_@@_info_date_tl       }
%        }
%      \@@_get_max_text_width:NN \l_@@_tmpb_dim \l_@@_tmpb_clist
%    \end{macrocode}
% 用循环输出各字段。
%    \begin{macrocode}
%      \bool_until_do:nn
%        { \clist_if_empty_p:N \l_@@_tmpa_clist }
%        {
%          \clist_pop:NN \l_@@_tmpa_clist \l_@@_tmpa_tl
%          \clist_pop:NN \l_@@_tmpb_clist \l_@@_tmpb_tl
%          \@@_spread_box:nn
%            { \l_@@_cover_info_left_width_tl }
%            { \l_@@_tmpa_tl }
%          \c_@@_fwid_colon_tl
%          \@@_center_box:Vn \l_@@_tmpb_dim { \l_@@_tmpb_tl }
%          \skip_vertical:n { 1 ex }
%        }
%    \end{minipage}
%  }
%\tl_new:N \l_@@_cover_info_left_width_tl
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\table_content:n}
% 读取表内容
%    \begin{macrocode}
\cs_new_protected:Npn \table_content:n #1
  { 
    \clist_set:Nn \l_tmpa_clist {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}
    \clist_map_inline:Nn \l_tmpa_clist
      {\tl_new:c { l_@@_info_ #1 _ ##1 _tl } }

    \bool_until_do:nn {\clist_if_empty_p:c { l_@@_info_ #1 _clist } }{
      \clist_pop:NN \l_tmpa_clist \l_tmpa_tl
      \clist_pop:cN { l_@@_info_ #1 _clist } \l_tmpb_tl
      \tl_set:cx { l_@@_info_ #1 _ \l_tmpa_tl _tl } \l_tmpb_tl
    }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_cover_table:}
% 学位申请简况表
%    \begin{macrocode}
\cs_new_protected:Npn \@@_cover_table:
  { 
    \table_content:n {pre_review}
    \table_content:n {pre_defense}
    \table_content:n {submission}
    \table_content:n {defense}

    \int_case:nn { \g_@@_thesis_type_int }
    {
      {1}{ % 博士
        \begin{tblr}{%
          width=\textwidth,
          colspec={|c|c|c|c|c|c|},
          column{1} = {wd=1.5em},
          cells={valign=m,halign=c},%垂直居中
          hlines = {wd=0.5pt},vlines={wd=0.5pt},%表内边框线宽度
          hline{1,8,15,20,Z} = {wd=1.5pt},vline{1,2,Z} = {wd=1.5pt},%表外边框线宽度
          cell{1}{1} = {r=26,c=1}{c,cmd={\bfseries 云\\南\\大\\学\\博\\士\\研\\究\\生\\学\\位\\申\\请\\简\\况\\表}},%云南大学博士研究生学位申请简况表
          cell{1}{2} = {r=7,c=1}{c,cmd={\bfseries 论\\文\\预\\审}},%论文预审
          cell{8}{2} = {r=7,c=1}{c,cmd={\bfseries 论\\文\\预\\答\\辩}},%论文预答辩
          cell{15}{2} = {r=5,c=1}{c,cmd={\bfseries 论\\文\\送\\审}},%论文送审
          cell{20}{2} = {r=7,c=1}{c,cmd={\bfseries 论\\文\\答\\辩}},%论文答辩
          cell{1}{3} = {r=1,c=4}{l,cmd={论文预审结果：}},%论文预审结果：
          cell{8}{3} = {r=1,c=4}{l,cmd={预答辩结果：}},%预答辩结果：
          cell{20}{3} = {r=1,c=4}{l,cmd={答辩结果：}},%答辩结果：
          cell{2,9,21}{5} = {r=1,c=2}{c,cmd={所在单位（校内：学院/校外：所在单位）}},%所在单位（校内：学院/校外：所在单位）
          cell{2,9,15}{3} = {cmd={专家姓名}},
          cell{21}{3} = {cmd={答辩专家}},
          cell{2,9,15,21}{4} = {cmd={职称}},
          cell{15}{5} = {cmd={所在单位（校内：学院/校外：所在单位）}},
          cell{15}{6} = {cmd={结果}},
          cell{3-7,10-14,22-26}{5} = {r=1,c=2}{c},%填写单位
          }
          % 预审
          & & \l_@@_info_pre_review_a_tl \\
          & & & & \\
          & & \l_@@_info_pre_review_b_tl & \l_@@_info_pre_review_c_tl & \l_@@_info_pre_review_d_tl \\
          & & \l_@@_info_pre_review_e_tl & \l_@@_info_pre_review_f_tl & \l_@@_info_pre_review_g_tl \\
          & & \l_@@_info_pre_review_h_tl & \l_@@_info_pre_review_i_tl & \l_@@_info_pre_review_j_tl \\
          & & \l_@@_info_pre_review_k_tl & \l_@@_info_pre_review_l_tl & \l_@@_info_pre_review_m_tl \\
          & & \l_@@_info_pre_review_n_tl & \l_@@_info_pre_review_o_tl & \l_@@_info_pre_review_p_tl \\
          % 预答辩, 仅博士
          & & \l_@@_info_pre_defense_a_tl \\
          & & & & \\
          & & \l_@@_info_pre_defense_b_tl & \l_@@_info_pre_defense_c_tl & \l_@@_info_pre_defense_d_tl \\
          & & \l_@@_info_pre_defense_e_tl & \l_@@_info_pre_defense_f_tl & \l_@@_info_pre_defense_g_tl \\
          & & \l_@@_info_pre_defense_h_tl & \l_@@_info_pre_defense_i_tl & \l_@@_info_pre_defense_j_tl \\
          & & \l_@@_info_pre_defense_k_tl & \l_@@_info_pre_defense_l_tl & \l_@@_info_pre_defense_m_tl \\
          & & \l_@@_info_pre_defense_n_tl & \l_@@_info_pre_defense_o_tl & \l_@@_info_pre_defense_p_tl \\
          % 送审
          & & & & &\\
          & & \l_@@_info_submission_a_tl & \l_@@_info_submission_b_tl & \l_@@_info_submission_c_tl & \l_@@_info_submission_d_tl \\
          & & \l_@@_info_submission_e_tl & \l_@@_info_submission_f_tl & \l_@@_info_submission_g_tl & \l_@@_info_submission_h_tl \\
          & & \l_@@_info_submission_i_tl & \l_@@_info_submission_j_tl & \l_@@_info_submission_k_tl & \l_@@_info_submission_l_tl \\
          & & \l_@@_info_submission_m_tl & \l_@@_info_submission_n_tl & \l_@@_info_submission_o_tl & \l_@@_info_submission_p_tl \\
          % 答辩
          & & \l_@@_info_defense_a_tl \\
          & & & & \\
          & & \l_@@_info_defense_b_tl & \l_@@_info_defense_c_tl & \l_@@_info_defense_d_tl \\
          & & \l_@@_info_defense_e_tl & \l_@@_info_defense_f_tl & \l_@@_info_defense_g_tl \\
          & & \l_@@_info_defense_h_tl & \l_@@_info_defense_i_tl & \l_@@_info_defense_j_tl \\
          & & \l_@@_info_defense_k_tl & \l_@@_info_defense_l_tl & \l_@@_info_defense_m_tl \\
          & & \l_@@_info_defense_n_tl & \l_@@_info_defense_o_tl & \l_@@_info_defense_p_tl \\
        \end{tblr}
      }
      {2}{ % 硕士
         \begin{tblr}{%
          width=\textwidth,
          colspec={|c|c|c|c|c|c|},
          column{1} = {wd=1.5em},
          cells={valign=m,halign=c},%垂直居中
          hlines = {wd=0.5pt},vlines={wd=0.5pt},%表内边框线宽度
          hline{1,8,13,Z} = {wd=1.5pt},vline{1,2,Z} = {wd=1.5pt},%表外边框线宽度
          cell{1}{1} = {r=19,c=1}{c,cmd={\bfseries 云\\南\\大\\学\\硕\\士\\研\\究\\生\\学\\位\\申\\请\\简\\况\\表}},%云南大学硕士研究生学位申请简况表
          cell{1}{2} = {r=7,c=1}{c,cmd={\bfseries 论\\文\\预\\审}},%论文预审
          cell{8}{2} = {r=5,c=1}{c,cmd={\bfseries 论\\文\\送\\审}},%论文送审
          cell{13}{2} = {r=7,c=1}{c,cmd={\bfseries 论\\文\\答\\辩}},%论文答辩
          cell{1}{3} = {r=1,c=4}{l,cmd={论文预审结果：}},%论文预审结果：
          cell{13}{3} = {r=1,c=4}{l,cmd={答辩结果：}},%答辩结果：
          cell{2,14}{5} = {r=1,c=2}{c,cmd={所在单位（校内：学院/校外：所在单位）}},%所在单位（校内：学院/校外：所在单位）
          cell{2,8}{3} = {cmd={专家姓名}},
          cell{14}{3} = {cmd={答辩专家}},
          cell{2,8,14}{4} = {cmd={职称}},
          cell{8}{5} = {cmd={所在单位（校内：学院/校外：所在单位）}},
          cell{8}{6} = {cmd={结果}},
          cell{3-7,15-19}{5} = {r=1,c=2}{c},%填写单位
          rows = {ht=2.5em}
          }
          % 预审
          & & \l_@@_info_pre_review_a_tl \\
          & & & & \\
          & & \l_@@_info_pre_review_b_tl & \l_@@_info_pre_review_c_tl & \l_@@_info_pre_review_d_tl \\
          & & \l_@@_info_pre_review_e_tl & \l_@@_info_pre_review_f_tl & \l_@@_info_pre_review_g_tl \\
          & & \l_@@_info_pre_review_h_tl & \l_@@_info_pre_review_i_tl & \l_@@_info_pre_review_j_tl \\
          & & \l_@@_info_pre_review_k_tl & \l_@@_info_pre_review_l_tl & \l_@@_info_pre_review_m_tl \\
          & & \l_@@_info_pre_review_n_tl & \l_@@_info_pre_review_o_tl & \l_@@_info_pre_review_p_tl \\
          % 送审
          & & & & &\\
          & & \l_@@_info_submission_a_tl & \l_@@_info_submission_b_tl & \l_@@_info_submission_c_tl & \l_@@_info_submission_d_tl \\
          & & \l_@@_info_submission_e_tl & \l_@@_info_submission_f_tl & \l_@@_info_submission_g_tl & \l_@@_info_submission_h_tl \\
          & & \l_@@_info_submission_i_tl & \l_@@_info_submission_j_tl & \l_@@_info_submission_k_tl & \l_@@_info_submission_l_tl \\
          & & \l_@@_info_submission_m_tl & \l_@@_info_submission_n_tl & \l_@@_info_submission_o_tl & \l_@@_info_submission_p_tl \\
          % 答辩
          & & \l_@@_info_defense_a_tl \\
          & & & & \\
          & & \l_@@_info_defense_b_tl & \l_@@_info_defense_c_tl & \l_@@_info_defense_d_tl \\
          & & \l_@@_info_defense_e_tl & \l_@@_info_defense_f_tl & \l_@@_info_defense_g_tl \\
          & & \l_@@_info_defense_h_tl & \l_@@_info_defense_i_tl & \l_@@_info_defense_j_tl \\
          & & \l_@@_info_defense_k_tl & \l_@@_info_defense_l_tl & \l_@@_info_defense_m_tl \\
          & & \l_@@_info_defense_n_tl & \l_@@_info_defense_o_tl & \l_@@_info_defense_p_tl \\
        \end{tblr}
      }
    }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_cover_signature:N}
% 签名部分。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_cover_signature:N #1
  {
    \clist_map_inline:Nn #1
      {
        ##1 \c_@@_fwid_colon_tl
        \@@_blank_underline:n { 6.5 em }
        \@@_quad:
      }
  }
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{封面模板}
%
% 声明封面对象。不需要带参数。
%    \begin{macrocode}
%<@@=YNU_cover>
\DeclareObjectType { YNU / cover } { \c_zero_int }
%    \end{macrocode}
%
% \begin{macro}{\DeclareCoverTemplate,\YNU_cover_declare_template:nn}
% 声明封面模板。
% \begin{arguments}
%   \item 模板名称
%   \item 封面部件列表，以逗号分隔
% \end{arguments}
%    \begin{macrocode}
\NewDocumentCommand \DeclareCoverTemplate { m m }
  { \YNU_cover_declare_template:nn {#1} {#2} }
\cs_new_protected:Npn \YNU_cover_declare_template:nn #1#2
  {
    \tl_set:Nn \l_@@_template_tl {#1}
%    \end{macrocode}
% 构建模板接口。
%    \begin{macrocode}
    \@@_declare_template_interface:nx {#1}
      {
        format      : tokenlist,
        top-skip    : skip,
        bottom-skip : skip,
        \clist_map_function:nN {#2} \@@_key_type:n
      }
%    \end{macrocode}
% 声明所用变量。
%    \begin{macrocode}
    \tl_new:c   { l_@@ / #1 / format_tl   }
    \skip_new:c { l_@@ / #1 / top_skip    }
    \skip_new:c { l_@@ / #1 / bottom_skip }
    \clist_map_inline:nn {#2}
      {
        \tl_new:c   { l_@@ / #1 / ##1 / content_tl  }
        \tl_new:c   { l_@@ / #1 / ##1 / format_tl   }
        \skip_new:c { l_@@ / #1 / ##1 / bottom_skip }
      }
%    \end{macrocode}
% 声明模板代码。^^A 以下名字空间为 `YNU_cover' 而非 `YNU'
%    \begin{macrocode}
    \@@_declare_template_code:nxn {#1}
      {
        format      = \exp_not:c { l_@@ / #1 / format_tl   },
        top-skip    = \use:c     { l_@@ / #1 / top_skip    },
        bottom-skip = \use:c     { l_@@ / #1 / bottom_skip },
        \clist_map_function:nN {#2} \@@_key_binding:n
      }
      {
        \AssignTemplateKeys
        \tl_use:c       { l_@@ / #1 / format_tl }
        \__YNU_vspace:c { l_@@ / #1 / top_skip  }
        \clist_map_inline:nn {#2}
          {
            \use:c { @@ / #1 / ####1 / align:n }
              {
                \tl_use:c { l_@@ / #1 / ####1 / format_tl  }
                \tl_use:c { l_@@ / #1 / ####1 / content_tl }
                \par
              }
            \__YNU_vspace:c { l_@@ / #1 / ####1 / bottom_skip }
          }
        \__YNU_vspace:c { l_@@ / #1 / bottom_skip }
      }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{variable}{\l_@@_template_tl}
% 保存模板名称。
%    \begin{macrocode}
\tl_new:N \l_@@_template_tl
%    \end{macrocode}
% \end{variable}
%
% \begin{macro}{\@@_declare_template_interface:nn,
%   \@@_declare_template_code:nnn,
%   \@@_declare_template_interface:nx,
%   \@@_declare_template_code:nxn}
% 为了展开的方便，这里需要封装 \pkg{xtemplate} 的一些函数。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_declare_template_interface:nn #1#2
  { \DeclareTemplateInterface { YNU / cover } {#1} { \c_zero_int } {#2} }
\cs_new_protected:Npn \@@_declare_template_code:nnn #1#2#3
  { \DeclareTemplateCode { YNU / cover } {#1} { \c_zero_int } {#2} {#3} }
\cs_generate_variant:Nn \@@_declare_template_interface:nn { nx  }
\cs_generate_variant:Nn \@@_declare_template_code:nnn     { nxn }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_key_type:n}
%    \begin{macrocode}
\cs_new:Npn \@@_key_type:n #1
  {
    #1 / content     : tokenlist,
    #1 / format      : tokenlist,
    #1 / bottom-skip : skip,
    #1 / align       : choice { left, right, center, normal } = normal,
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_key_binding:n}
%    \begin{macrocode}
\cs_new:Npn \@@_key_binding:n #1
  {
    #1 / content     =
      \exp_not:c
        { l_@@ / \l_@@_template_tl / #1 / content_tl  },
    #1 / format      =
      \exp_not:c
        { l_@@ / \l_@@_template_tl / #1 / format_tl   },
    #1 / bottom-skip =
      \exp_not:c
        { l_@@ / \l_@@_template_tl / #1 / bottom_skip },
    #1 / align       =
      {
        left   =
          \exp_not:N \cs_set_protected:cpn
            { @@ / \l_@@_template_tl / #1 / align:n }
            \exp_not:n {##1}
            {
              \exp_not:n
                {
                  \group_begin:
                    \flushleft ##1 \endflushleft
                  \group_end:
                }
            },
        right  =
          \exp_not:N \cs_set_protected:cpn
            { @@ / \l_@@_template_tl / #1 / align:n }
            \exp_not:n {##1}
            {
              \exp_not:n
                {
                  \group_begin:
                    \flushright ##1 \endflushright
                  \group_end:
                }
            },
        center =
          \exp_not:N \cs_set_protected:cpn
            { @@ / \l_@@_template_tl / #1 / align:n }
            \exp_not:n {##1}
            {
              \exp_not:n
                {
                  \group_begin:
                    \center ##1 \endcenter
                  \group_end:
                }
            },
        normal =
          \exp_not:N \cs_set_protected:cpn
            { @@ / \l_@@_template_tl / #1 / align:n }
            \exp_not:n {##1}
            { \exp_not:n { \group_begin: ##1 \group_end: } }
      },
  }
%<@@=YNU>
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{绘制封面}
%
% \begin{macro}{\makecoveri}
% 论文封面（封一）。
%    \begin{macrocode}
\NewDocumentCommand \makecoveri { }
  {
    \thispagestyle { empty }
    \UseInstance { YNU / cover } { cover-i-default }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\makecoverii}
% 指导小组成员名单（封二）。
%    \begin{macrocode}
\NewDocumentCommand \makecoverii { }
  { 
    \cleardoublepage
    \thispagestyle { empty }
    \clist_if_empty:NF \l_@@_info_pre_review_clist
      { \UseInstance { YNU / cover } { cover-ii-default } }
    \cleardoublepage
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\makecoveriii}
% 声明页（封三）。
%    \begin{macrocode}
\NewDocumentCommand \makecoveriii { }
  {
    \tl_if_empty:NTF \l_@@_declaration_page_tl
      {
        \thispagestyle { empty }
        \UseInstance { YNU / cover } { cover-iii-default }
      }
      { \includepdf { \l_@@_declaration_page_tl } }
      \cleardoublepage
  }
%    \end{macrocode}
% \end{macro}
%
% 声明各封面模板组成部分。
%    \begin{macrocode}
\DeclareCoverTemplate { cover-i   }
  { id, logo, type, degree, title, title-en, info, date }
\DeclareCoverTemplate { cover-ii  } { table }
\DeclareCoverTemplate { cover-iii }
  {
    orig-auth-decl-name,
    orig-auth-decl-text-a,
    orig-auth-decl-text-b,
    orig-auth-decl-sig,
  }
%    \end{macrocode}
%
% 定义封面的具体配置参数。
% \url{https://syvshc.github.io/2021-08-04-thesis-title/}
%    \begin{macrocode}
\newlength\myheight%可以重构为LaTeX3代码
\newcommand\Mysavedprevdepth{}%
\newcommand\UnderlineCentered[3]{%
  \begin{adjustbox}{minipage=[t]{\dimexpr#1\relax},gstore~ totalheight=\myheight,margin=0pt}%
    \centering\leavevmode#3\par\xdef\Mysavedprevdepth{\the\prevdepth}%
  \end{adjustbox}%
  \hspace*{-\dimexpr#1\relax}%
  \begin{adjustbox}{minipage=[t][\myheight]{\dimexpr#1\relax},margin=0pt}%
    \vphantom{Eg}\lower\dimexpr#2\relax\hbox to\hsize{\leaders\hrule\hfill\kern0pt}\par
    \kern-\dimexpr#2\relax
    \xleaders\vbox to\baselineskip {\vfill\hbox{\lower\dimexpr#2\relax\hbox to\hsize{\leaders\hrule\hfill\kern0pt}}\kern-\dimexpr#2\relax}\vfill
    \kern\Mysavedprevdepth
  \end{adjustbox}%
}%
\DeclareInstance { YNU / cover } { cover-i-default } { cover-i }
  {
    bottom-skip            = 0 pt plus 0.0 fill,
    id       / content     = \@@_cover_id:,
    logo     / content     = \@@_cover_logo:,
    type     / content     = \@@_cover_type:,
%    degree   / content     = \@@_cover_degree:,
    title    / content     = \@@_cover_title:,
    title-en / content     = \@@_cover_title_en:,
    info     / content     = \@@_cover_info:,
    date     / content     = \@@_cover_date:,
    id       / format      = \zihao { 5 },
    type     / format      = \zihao { 0 } \YNU@xingkai,
    degree   / format      = \zihao { 4 },
    title    / format      = \@@_line_spread:n { 1 } \sffamily \zihao { 2 } \bfseries,
    title-en / format      = \@@_line_spread:n { 1 } \zihao { 2 } \bfseries,
    info     / format      = \@@_line_spread:n { 2 } \sffamily \zihao { 3 },
    date     / format      = \@@_line_spread:n { 2 } \sffamily \zihao { 3 },
    id       / bottom-skip = 0 pt plus 1 fill,
    logo     / bottom-skip = -15 pt,%0 pt plus 0.5 fill,
    type     / bottom-skip = -25 pt,
%    degree   / bottom-skip = 0 pt plus 0.8 fill,
    title / bottom-skip = 7 ex plus 0.5 fill,
    title-en / bottom-skip = 30 pt plus 2 fill,
    info / bottom-skip = 40 pt plus 10 fill,
    date / bottom-skip = -40 pt plus 0 fill,
    id       / align       = left,
    logo     / align       = center,
    type     / align       = center,
    degree   / align       = center,
    title    / align       = center,
    title-en / align       = center,
    info     / align       = right,
    date     / align       = center,
  }
\DeclareInstance { YNU / cover } { cover-ii-default } { cover-ii }
  {
    table    / content =\@@_cover_table:,
    table     / format  = \zihao { -4 },
    table     / align   = center,
  }
\DeclareInstance { YNU / cover } { cover-iii-default } { cover-iii }
  {
    format                                = \@@_line_spread:n { 1.5 },
    orig-auth-decl-name   / content     = \c_@@_name_orig_auth_tl,
    orig-auth-decl-text-a / content     = \c_@@_orig_auth_text_a_tl,
    orig-auth-decl-text-b / content     = \c_@@_name_orig_auth_text_b_tl,
    orig-auth-decl-sig    / content     =
      \@@_cover_signature:N \c_@@_orig_auth_sign_clist,
    orig-auth-decl-name   / format      = \zihao { 2 } \sffamily,
    orig-auth-decl-text-b / format      = \sffamily,
    orig-auth-decl-name   / bottom-skip = 1 cm,
    orig-auth-decl-text-a / bottom-skip = 0 cm,
    orig-auth-decl-text-b / bottom-skip = 3 cm,
    orig-auth-decl-sig    / bottom-skip = 0 cm,
    orig-auth-decl-name   / align       = center,
    orig-auth-decl-sig    / align       = left,
  }
%    \end{macrocode}
%
% \begin{variable}{\l_@@_auto_make_cover_bool,\l_@@_declaration_page_tl}
%    \begin{macrocode}
\bool_new:N \l_@@_auto_make_cover_bool
\tl_new:N   \l_@@_declaration_page_tl
%    \end{macrocode}
% \end{variable}
%
% \begin{macro}{style/auto-make-cover}
% 是否自动生成封面。
%    \begin{macrocode}
\keys_define:nn { YNU / style }
  {
    auto-make-cover  .bool_set:N = \l_@@_auto_make_cover_bool,
    auto-make-cover  .default:n  = true,
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{style/declaration-page}
% 设置扫描版的声明页 PDF 文档。
%    \begin{macrocode}
    declaration-page .code:n     =
      {
        \tl_set_eq:NN \l_@@_declaration_page_tl \l_keys_value_tl
        \RequirePackage { pdfpages }
      },
  }
%    \end{macrocode}
% \end{macro}
%
% 在 \env{document} 开始位置添加封面、学位申请表和声明页。
%    \begin{macrocode}
\ctex_after_end_preamble:n
  {
    \bool_if:NT \l_@@_auto_make_cover_bool
      {
        \begin{titlepage}
%^^A          \@@_vspace:n {-1.5cm} 
          \makecoveri \newpage \makecoverii \newpage \makecoveriii
        \end{titlepage}
      }
  }
%    \end{macrocode}
%
% 在 \env{document} 结束位置添加声明页。
%    \begin{macrocode}
% \@@_gadd_ltxhook:nn { enddocument }
%   { \bool_if:NT \l_@@_auto_make_cover_bool { \makecoveriii } }
%    \end{macrocode}
%
% \subsection{目录}
%
% 设置目录标题。
%    \begin{macrocode}
\keys_set:nn { ctex }
  {
    contentsname   = \c_@@_name_toc_tl,
    listfigurename = \c_@@_name_lof_tl,
    listtablename  = \c_@@_name_lot_tl,
%    \end{macrocode}
%
% 设置目录中章节标题的样式。
%    \begin{macrocode}
    tocdepth       = 3,
    secnumdepth    = 3,
    chapter / tocline =
      {
        \normalfont \sffamily
        \CTEXnumberline {#1} #2
      },
    section / tocline =
      {
        \CTEXnumberline {#1} #2
      },
    subsection / tocline =
      {
        \CTEXnumberline {#1} #2
      },
    subsubsection / tocline =
      {
        \CTEXnumberline {#1} #2
      }
  }
%    \end{macrocode}
%
% \begin{macro}{\tableofcontents,\listoffigures,\listoftables}
% 修改 \cs{tableofcontents}、\cs{listoffigures} 和 \cs{listoftables} 的定义，
% 使得页眉正确显示，并出现在目录及 PDF 书签中。来自于 \LaTeXe{} 标准文档类
% \file{book.cls}
% \footnote{原代码中只有 \cs{tableofcontents} 的 \cs{@mkboth} 出现在
% \cs{chapter*} 内部，这是出于兼容性的考虑而非 typo。}。
%    \begin{macrocode}
\@@_patch_cmd:Nnn \tableofcontents
  {
    \chapter*{\contentsname
      \@mkboth{\MakeUppercase\contentsname}
              {\MakeUppercase\contentsname}}
  }
  { \@@_chapter_no_toc:V \contentsname }
\@@_patch_cmd:Nnn \listoffigures
  {
    \chapter*{\listfigurename}
    \@mkboth{\MakeUppercase\listfigurename}
            {\MakeUppercase\listfigurename}
  }
  { \@@_chapter:V \listfigurename }
\@@_patch_cmd:Nnn \listoftables
  {
    \chapter*{\listtablename}
    \@mkboth{\MakeUppercase\listtablename}
            {\MakeUppercase\listtablename}
  }
  { \@@_chapter:V \listtablename }
%    \end{macrocode}
% \end{macro}
%
% \subsection{摘要}
%
% \begin{environment}{abstract}
% \begin{environment}{abstract*}
%
% 摘要环境。在中文模板定义了中英文双语摘要，但在英文模板中则没有定义中文摘要。
%    \begin{macrocode}
\NewDocumentEnvironment { abstract  } { }
  { \@@_abstract_begin:    } { \@@_abstract_end:      }
\NewDocumentEnvironment { abstract* } { }
  { \@@_abstract_en_begin: } { \@@_abstract_en_end:   }
%    \end{macrocode}
% \end{environment}
% \end{environment}
%
% \begin{macro}{\@@_abstract_begin:,\@@_abstract_en_begin:}
% 摘要页标题。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_abstract_begin:
  { \@@_chapter:V \c_@@_name_abstract_tl    }
  \cs_new_protected:Npn \@@_abstract_en_begin:
  { \@@_chapter:V \c_@@_name_abstract_en_tl }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_abstract_end:}
% 摘要正文完成后，输出关键字列表和 CLC/JEL 分类号。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_abstract_end:
  {
    \@@_keywords:nNn
      { \sffamily \c_@@_name_keywords_tl \c_@@_fwid_colon_tl }
      \l_@@_info_keywords_clist { \c_@@_fwid_semicolon_tl }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_abstract_en_end:}
% 英文摘要中，如果指定了 JEL 分类号，则 CLC 分类号不再显示。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_abstract_en_end:
  {
    \@@_keywords:nNn
      { \bfseries \c_@@_name_keywords_en_tl \@@_quad: }
      \l_@@_info_keywords_en_clist { ; ~ }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_keywords:nNn,\@@_keywords_prevdepth:,\@@_clc_jel:nn}
% 关键字列表前要空一行，使用悬挂缩进；分类号不缩进。|\parbox| 之后的间距
% 需要调整，见 \url{https://tex.stackexchange.com/a/34982}。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_keywords:nNn #1#2#3
  {
    \par \mode_leave_vertical: \par \noindent
    \@@_get_text_width:Nn \l_@@_tmpa_dim {#1}
    \group_begin: #1 \group_end:
    \parbox [t] { \dim_eval:n { \textwidth - \l_@@_tmpa_dim } }
      {
        \clist_use:Nn #2 {#3} \par
        \cs_gset:Npx \@@_keywords_prevdepth: { \dim_use:N \tex_prevdepth:D }
      }
  }
\cs_new_protected:Npn \@@_clc_jel:nn #1#2
  {
%    \par \tex_prevdepth:D \@@_keywords_prevdepth: \noindent
    \group_begin: #1 \group_end:
    #2
  }
%    \end{macrocode}
% \end{macro}
%
% \subsection{符号表}
%
% \begin{environment}{notation}
%
% 符号表环境，利用 \env{longtable} 封装。可选参数为表格列格式说明符。
%    \begin{macrocode}
\NewDocumentEnvironment { notation } { O { l p { 7.5 cm } } }
  {
    \@@_notation_begin:
    \group_begin:
      \@@_notation_long_table_setup:
      \longtable {#1}
  }
  {
      \endlongtable
    \group_end:
  }
%    \end{macrocode}
% \end{environment}
%
% \begin{macro}{\@@_notation_begin:}
% 符号表页标题。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_notation_begin:
  {
\@@_chapter:V \c_@@_name_notation_tl
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_notation_long_table_setup:}
% 调整 \cs{LTpre} 和 \cs{LTpost}，以删去 \env{longtable} 前后的空白。
% 英文模板中还需要调整表格的行距。注意 \tn{arraystretch} 只是一个简单
% 宏，不能使用 \cs{fp_set:Nn}。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_notation_long_table_setup:
  {
    \tl_set:Nn \arraystretch { 1.3 }
    \dim_set_eq:NN \LTpre  \c_zero_dim
    \dim_set_eq:NN \LTpost \c_zero_dim
  }
%    \end{macrocode}
% \end{macro}
%
% \subsection{参考文献著录与引用}
%
% \begin{variable}{\l_@@_bibtex_bool}
% 是否使用 \BibTeX{} 作为参考文献处理程序。若为否，则使用
%^^A \pkg{biblatex}/\biber{}。
%    \begin{macrocode}
\bool_new:N \l_@@_bibtex_bool
%    \end{macrocode}
% \end{variable}
%
% \begin{variable}{\l_@@_bib_style_tl,\l_@@_bib_gb_style_tl,
%   \l_@@_cite_style_tl}
% 保存参考文献及引用样式。
%    \begin{macrocode}
\tl_new:N \l_@@_bib_style_tl
\tl_new:N \l_@@_bib_gb_style_tl
\tl_new:N \l_@@_cite_style_tl
%    \end{macrocode}
% \end{variable}
%
% \begin{variable}{\l_@@_bib_resource_clist}
%
% 保存参考文献数据库列表。
%    \begin{macrocode}
\clist_new:N \l_@@_bib_resource_clist
%    \end{macrocode}
% \end{variable}
%
%    \begin{macrocode}
\keys_define:nn { YNU / style }
  {
%    \end{macrocode}
% \begin{macro}{style/bib-backend}
% 参考文献后端。
%    \begin{macrocode}
    bib-backend .choice:,
    bib-backend .value_required:n = true,
    bib-backend / bibtex   .code:n =
      { \bool_set_true:N  \l_@@_bibtex_bool },
    bib-backend / biblatex .code:n =
      { \bool_set_false:N \l_@@_bibtex_bool },
%    \end{macrocode}
% \end{macro}
% \begin{macro}{style/bib-style}
% 参考文献样式。
%    \begin{macrocode}
    bib-style .choice:,
    bib-style .value_required:n = true,
    bib-style / numerical    .code:n =
      {
        \tl_set:Nn  \l_@@_bib_gb_style_tl { numerical  }
        \tl_clear:N \l_@@_bib_style_tl
      },
    bib-style / author-year .code:n =
      {
        \tl_set:Nn  \l_@@_bib_gb_style_tl { author-year }
        \tl_clear:N \l_@@_bib_style_tl
      },
    bib-style / unknown     .code:n =
      {
        \tl_set_eq:NN \l_@@_bib_style_tl \l_keys_value_tl
        \tl_clear:N   \l_@@_bib_gb_style_tl
      },
%    \end{macrocode}
% \end{macro}
% \begin{macro}{style/cite-style}
%
% 引用样式。
%    \begin{macrocode}
    cite-style .tl_set:N = \l_@@_cite_style_tl,
%    \end{macrocode}
% \end{macro}
% \begin{macro}{style/bib-resource}
% 参考文献数据源。
%    \begin{macrocode}
    bib-resource .clist_set:N = \l_@@_bib_resource_clist
  }
%    \end{macrocode}
% \end{macro}
%
% 为了保证导言区中的设置能起作用，\pkg{gbt774}、\pkg{natbib} 或 \pkg{biblatex}
% 宏包均需要在导言区末尾载入（仍在 \pkg{hyperref} 之前），并做相关设置。
%    \begin{macrocode}
\ctex_at_end_preamble:n
  {
    \bool_if:NT \l_@@_bibtex_bool
      {
        \tl_if_empty:NTF \l_@@_bib_style_tl
          {
            \RequirePackage [ sort & compress ] { gbt7714 }
            \exp_args:No \bibliographystyle { gbt7714- \l_@@_bib_gb_style_tl }
          }
          {
            \RequirePackage [ sort & compress ] { natbib }
            \exp_args:NV \bibliographystyle \l_@@_bib_style_tl
          }
        \@@_bibtex_setup:
      }
  }
%    \end{macrocode}
% \pkg{biblatex} 会写入 |begindocument/before| 钩子，因此需在其之前通过
% \texttt{env/document/\-begin} 钩子载入 \pkg{biblatex} 宏包。注意这个钩子仅
% 适用于 |\begin{document}| 的写法，对于 |\document| 命令本身无效。
%    \begin{macrocode}
\@@_gadd_ltxhook:nn { env/document/begin }
  {
    \bool_if:NF \l_@@_bibtex_bool
      {
        \@@_biblatex_pre_setup:
        \RequirePackage { biblatex }
        \@@_biblatex_post_setup:
      }
  }
%    \end{macrocode}
%
% \begin{macro}{\@@_bibtex_setup:,\parencite,\printbibliography}
% \BibTeX{} 相关设置。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_bibtex_setup:
  {
%    \end{macrocode}
% 行内引用命令。这里定义比较繁琐，是为了与 \tn{cite} 等命令保持一致。
%    \begin{macrocode}
    \tl_if_eq:VnTF \l_@@_bib_gb_style_tl { numerical }
      {
        \exp_args:NNx \DeclareRobustCommand \parencite
          { \exp_args:No \exp_not:o { \cs:w cite ~ \cs_end: } }
        \exp_args:Nc \ctex_patch_cmd:Nnn { parencite ~ }
          { \begingroup }
          { \begingroup \bibstyle@numbers }
      }
      { \cs_set_eq:NN \parencite \cite }
%    \end{macrocode}
% 引用样式。
%    \begin{macrocode}
    \tl_if_empty:NF \l_@@_cite_style_tl
      { \exp_args:NV \citestyle \l_@@_cite_style_tl }
%    \end{macrocode}
% 使用 \tn{textendash} “\textendash”作为数字间的连接号。
%    \begin{macrocode}
    \ctex_patch_cmd:Nnn \NAT@citexnum
      { - \NAT@penalty }
      { \textendash \NAT@penalty }
%    \end{macrocode}
% 修改参考文献标题。
%    \begin{macrocode}
    \cs_set:Npn \bibsection { \@@_chapter:V \bibname }
%    \end{macrocode}
% 参考文献的著录条目用五号字。
%    \begin{macrocode}
    \RenewDocumentCommand \bibfont { } { \small }
    \setlength{\bibsep}{0\p@ \@plus.5\p@}
    \setlength{\bibhang}{2\ccwd}
%    \end{macrocode}
% \BibTeX{} 下接口与 \pkg{biblatex} 保持统一。
%    \begin{macrocode}
    \NewDocumentCommand \printbibliography { o }
      {
        \exp_args:NV \bibliography \l_@@_bib_resource_clist
        \IfValueT {##1}
          { \@@_warning:nn { invalid-option-in-bibtex } {##1} }
      }
  }
\@@_msg_new:nn { invalid-option-in-bibtex }
  { Option(s)~ "#1"~ are~ invalid~ in~ BibTeX. }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\addbibresource}
% 由于 \pkg{biblatex} 在导言区后才载入，需要单独定义添加参考文献数据源的命令以实现兼容。
% 该命令需要在载入宏包前取消定义。
%    \begin{macrocode}
\bool_if:NF \l_@@_bibtex_bool
  {
    \NewDocumentCommand \addbibresource { m }
      { \clist_gput_right:Nn \l_@@_bib_resource_clist {#1} }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_biblatex_pre_setup:,\@@_biblatex_post_setup:}
% \pkg{biblatex} 相关设置。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_biblatex_pre_setup:
  {
    \cs_undefine:N \addbibresource
    \clist_new:N \l_@@_biblatex_options_clist
    \clist_put_right:Nn \l_@@_biblatex_options_clist { hyperref = manual, gbnamefmt = lowercase,  eprint = false, gbtitlelink = true, url = false, doi = false }
%    \end{macrocode}
% 参考文献样式。
%    \begin{macrocode}
    \clist_put_right:Nx \l_@@_biblatex_options_clist
      {
        style =
        \tl_if_empty:NTF \l_@@_bib_style_tl
          {
            \str_if_eq:VnTF \l_@@_bib_gb_style_tl { numerical }
              { gb7714-2015 } { gb7714-2015ay }
          }
          { \l_@@_bib_style_tl }
      }
%    \end{macrocode}
% 引用样式。
%
%    \begin{macrocode}
    \tl_if_empty:NF \l_@@_cite_style_tl
      {
        \clist_put_right:Nx \l_@@_biblatex_options_clist
          { citestyle = \l_@@_cite_style_tl }
      }
    \exp_args:NV \PassOptionsToPackage \l_@@_biblatex_options_clist
      { biblatex }
  }
\cs_new_protected:Npn \@@_biblatex_post_setup:
  {
    \clist_map_function:NN \l_@@_bib_resource_clist \addbibresource
    \@@_biblatex_allow_url_break:
    \@@_biblatex_use_en_dash:
%    \end{macrocode}
% 修改参考文献标题。
%    \begin{macrocode}
    \defbibheading { bibliography } [ \bibname ] { \@@_chapter:n {##1} }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_biblatex_allow_url_break:}
% \pkg{biblatex} 下允许 URL 在字母、数字和一些特殊符号处断行。
%    \begin{macrocode}
\cs_new:Npn \@@_biblatex_allow_url_break:
  {
    \int_set_eq:NN \c@biburlucpenalty  \c_one_int
    \int_set_eq:NN \c@biburlnumpenalty \c_one_int
    \int_set_eq:NN \c@biburllcpenalty  \c_one_int
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_biblatex_use_en_dash:}
% 使用 \tn{textendash} “\textendash”作为数字间的连接号。
%    \begin{macrocode}
\cs_new:Npn \@@_biblatex_use_en_dash:
  {
    \DefineBibliographyExtras { english }
      {
        \cs_set_nopar:Npn \bibrangedash
          { \textendash \penalty \hyphenpenalty }
      }
    \DefineBibliographyExtras { russian }
      {
        \cs_set_nopar:Npn \bibrangedash
          { \textendash \penalty \hyphenpenalty }
      }
  }
%    \end{macrocode}
% \end{macro}
%
% \subsection{\pkg{hyperref} 相关配置}
%
% \begin{macro}{\hypersetup,\YNU_hyperref_setup:n}
% \pkg{hyperref} 宏包是在导言区之后才引入的。若要在导言区中使用
% \tn{hypersetup} 命令，必须另行定义。
%    \begin{macrocode}
\NewDocumentCommand \hypersetup { m }
  { \YNU_hyperref_setup:n {#1} }
\cs_new_protected:Npn \YNU_hyperref_setup:n #1
  { \clist_gput_right:Nn \g_@@_to_hyperref_clist {#1} }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_set_hyperlink_color_key:n}
% 设置超链接颜色选项。最后的逗号用于确保 \pkg{l3keys} 可以正确解析，不能省去。
%    \begin{macrocode}
\cs_new:Npn \@@_set_hyperlink_color_key:n #1
  {
    hyperlink-color / \clist_item:nn {#1} {1} .code:n =
      {
        \@@_define_hyperlink_color:nnn
          { \clist_item:nn {#1} {2} }
          { \clist_item:nn {#1} {3} }
          { \clist_item:nn {#1} {4} }
        \YNU_hyperref_setup:n
          {
            linkcolor = YNU@link, linkbordercolor = YNU@link,
            urlcolor  = YNU@url,  urlbordercolor  = YNU@url,
            citecolor = YNU@cite, citebordercolor = YNU@cite
          }
      },
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_define_hyperlink_color:nnn}
% 定义超链接颜色。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_define_hyperlink_color:nnn #1#2#3
  {
    \definecolorset { HTML } { YNU@ } { }
      { link, #1; url, #2; cite, #3 }
  }
%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
\keys_define:nx { YNU / style }
  {
%    \end{macrocode}
%
% \begin{macro}{style/hyperlink}
%
% 超链接样式。
%    \begin{macrocode}
    hyperlink .choice:,
    hyperlink .value_required:n = true,
    hyperlink / border .code:n =
      { \YNU_hyperref_setup:n { colorlinks = false } },
    hyperlink / color  .code:n =
      { \YNU_hyperref_setup:n { colorlinks = true  } },
    hyperlink / none   .code:n =
      { \YNU_hyperref_setup:n { hidelinks } },
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{style/hyperlink-color}
%
% 超链接颜色。
%    \begin{macrocode}
    hyperlink-color .choice:,
    hyperlink-color .value_required:n = true,
    \clist_map_function:nN
      {
        { classic,   FF0000, 0000FF, 00FF00 },
        { default,   990000, 0000B2, 007F00 },
        { material,  E91E63, 009688, 4CAF50 },
        { graylevel, 616161, 616161, 616161 },
        { prl,       2D3092, 2D3092, 2D3092 },
        { black,     000000, 000000, 000000 }
      }
      \@@_set_hyperlink_color_key:n
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\YNU_allow_url_break:,\@@_add_url_break_points:}
% 允许 URL 在字母、数字和一些特殊符号处断行。见
% \url{https://bit.ly/2hhIjLW}。
%    \begin{macrocode}
\cs_new:Npn \YNU_allow_url_break:
  {
    \cs_new:Npn \@@_add_url_break_points:
      { \tl_map_function:NN \c_@@_url_break_points_tl \do }
    \@@_appto_cmd:Nn \UrlBreaks
      { \UrlOrds \@@_add_url_break_points: }
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{variable}{\c_@@_url_break_points_tl}
% 额外的断行位置是 26 个英文字母（大小写）以及 10 个阿拉伯数字。
% \pkg{url} 提供的宏 \tn{UrlBreaks} 还包含了特殊符号 |*|、|-|、
% |~|、|'|、|"|、|-|，也被设置为允许断行。
%    \begin{macrocode}
\tl_const:Nn \c_@@_url_break_points_tl
  {
    abcdefghijklmnopqrstuvwxyz
    ABCDEFGHIJKLMNOPQRSTUVWXYZ
    0123456789
  }
%    \end{macrocode}
% \end{variable}
%
% 在导言区末尾引入 \pkg{hyperref} 宏包。
%    \begin{macrocode}
\ctex_at_end_preamble:n
  {
    \RequirePackage { hyperref }
%    \end{macrocode}
% 此后 \tn{hypersetup} 命令由 \pkg{hyperref} 宏包接管。
%    \begin{macrocode}
    \hypersetup
      {
        bookmarksnumbered = true,
        psdextra          = true,
        unicode           = true,
%    \end{macrocode}
% 填写 PDF 元信息。
%    \begin{macrocode}

        pdftitle    = \l_@@_info_title_tl,
        pdfauthor   = \l_@@_info_author_tl,
        pdfkeywords = \l_@@_info_keywords_clist,
%       pdfsubject  = ,
        pdfcreator  = \c_@@_name_pdf_creator_tl
      }
%    \end{macrocode}
% 将导言区中通过 \cs{YNU_hyperref_setup:n} 进行的设置传入 \tn{hypersetup}。
%    \begin{macrocode}
    \exp_args:NV \hypersetup \g_@@_to_hyperref_clist
%    \end{macrocode}
% URL 断行处理。
%    \begin{macrocode}
    \YNU_allow_url_break:
%    \end{macrocode}
% 由于 \pkg{hyperref} 在 \pkg{biblatex} 之后调用，所以需要手动开启相关功能。
%    \begin{macrocode}
    \bool_if:NF \l_@@_bibtex_bool { \BiblatexManualHyperrefOn }
  }
%    \end{macrocode}
%
% 在 PDF 字符串中设置 \tn{YNU@kai} 命令为空，以抑制 \pkg{hyperref} 的警告信息。
%    \begin{macrocode}
\ctex_at_end_package:nn { hyperref }
  {
    \pdfstringdefDisableCommands
      {
        \cs_set_eq:NN \YNU@kai \prg_do_nothing:
        \cs_set_eq:NN \quad    \c_space_tl
        \cs_set_eq:NN \qquad   \c_space_tl
      }
  }
%    \end{macrocode}
%
% \subsection{用户接口}
%
% \begin{macro}{info,style}
% 定义元（meta）键值对。
%    \begin{macrocode}
\keys_define:nn { YNU }
  {
    info  .meta:nn = { YNU / info  } {#1},
    style .meta:nn = { YNU / style } {#1}
  }
%    \end{macrocode}
% \end{macro}
%
% 文档类初始设置。
%    \begin{macrocode}
\keys_set:nn { YNU }
  {
    style   / font            = times,
    style   / cjk-font        = fandol,
    style   / font-size       = -4,
    style   / fullwidth-stop  = false,
    style   / auto-make-cover = true,
    style   / logo            = { Yunnan-name.pdf },
    style   / logo-size       = { 0.5 \textwidth },
    style   / hyperlink       = color,
    style   / hyperlink-color = default,
    style   / bib-style       = numerical,
    info    / degree          = academic,
    info    / secret-level    = none,
    info    / school-id       = { 10246 },
    info    / date            = { \zhtoday },
    theorem / header-font     = { \sffamily },
    theorem / body-font       = { \YNU@kai },
    theorem / counter         = { chapter }
  }
%    \end{macrocode}
%
% \begin{macro}{\YNUsetup}
% 用户设置接口。
%    \begin{macrocode}
\NewDocumentCommand \YNUsetup { m }
  { \keys_set:nn { YNU } {#1} }
%    \end{macrocode}
% \end{macro}
%
% \begin{environment}{proof}
% \begin{environment}{axiom}
% \begin{environment}{corollary}
% \begin{environment}{definition}
% \begin{environment}{example}
% \begin{environment}{lemma}
% \begin{environment}{theorem}
% 模板预定义的常用数学环境。
% 其中的“证明”比较特殊，它不编号，但会添加证毕符号。
%    \begin{macrocode}
\newtheorem* { proof       } { \c_@@_name_proof_tl      }
\newtheorem  { axiom       } { \c_@@_name_axiom_tl      }
\newtheorem  { corollary   } { \c_@@_name_corollary_tl  }
\newtheorem  { definition  } { \c_@@_name_definition_tl }
\newtheorem  { example     } { \c_@@_name_example_tl    }
\newtheorem  { lemma       } { \c_@@_name_lemma_tl      }
\newtheorem  { theorem     } { \c_@@_name_theorem_tl    }
%    \end{macrocode}
% \end{environment}
% \end{environment}
% \end{environment}
% \end{environment}
% \end{environment}
% \end{environment}
% \end{environment}
% \begin{macrocode}
%</class>
% \end{macrocode}
%
% \subsection{模板参数配置文件}
%
%    \begin{macrocode}
%<*definition>
%    \end{macrocode}
%
% \subsubsection{通用配置}
%
% \begin{variable}{\c_@@_name_simp_tl,\c_@@_name_trad_tl,\c_@@_name_en_tl}
% 学校名称。
%    \begin{macrocode}
\tl_const:Nn \c_@@_name_simp_tl { 云南大学          }
\tl_const:Nn \c_@@_name_trad_tl { 雲南大學          }
\tl_const:Nn \c_@@_name_en_tl   { Yunnan~ University }
%    \end{macrocode}
% \end{variable}
%
% 常用标点符号，见表~\ref{tab:punctuations}。
%    \begin{macrocode}
\clist_map_inline:nn
  {
    { ideo_comma         } { ^^^^3001 },
    { ideo_full_stop     } { ^^^^3002 },
    { fwid_comma         } { ^^^^ff0c },
    { fwid_full_stop     } { ^^^^ff0e },
    { fwid_colon         } { ^^^^ff1a },
    { fwid_semicolon     } { ^^^^ff1b },
    { fwid_left_paren    } { ^^^^ff08 },
    { fwid_right_paren   } { ^^^^ff09 },
    { fwid_left_bracket  } { ^^^^ff3b },
    { fwid_right_bracket } { ^^^^ff3d }
  }
  { \@@_define_punct:nn #1 }
%    \end{macrocode}
%
% \begin{table}[ht]
%   \caption{常用标点符号}
%   \label{tab:punctuations}
%   \centering
%   \begin{tabular}{cccc}
%     \toprule
%       \textbf{中文名称} &
%       \textbf{英文名称} &
%       \textbf{符号} &
%       \textbf{Unicode 码位} \\
%     \midrule
%       中文顿号     & Ideographic comma           & ^^^^3001 & U+3001 \\
%       中文句号     & Ideographic full stop       & ^^^^3002 & U+3002 \\
%       中文逗号     & Fullwidth comma             & ^^^^ff0c & U+FF0C \\
%       全角西文句点 & Fullwidth full stop         & ^^^^ff0e & U+FF0E \\
%       中文冒号     & Fullwidth colon             & ^^^^ff1a & U+FF1A \\
%       中文分号     & Fullwidth semicolon         & ^^^^ff1b & U+FF1B \\
%       中文左圆括号 & Fullwidth left parenthesis  & ^^^^ff08 & U+FF08 \\
%       中文右圆括号 & Fullwidth right parenthesis & ^^^^ff09 & U+FF09 \\
%     \bottomrule
%   \end{tabular}
% \end{table}
%
% \begin{variable}{\c_@@_line_spread_fp}
% 行距倍数。行距倍数 $k$ 由下式确定：
% \begin{equation*}
%   1.2 \times k \times \qty{12}{bp} = \qty{20}{pt}.
% \end{equation*}
% 式中，1.2 是基本行距与文字大小之比，\qty{12}{bp} 是小四号字的大小，
% \qty{20}{pt} 是行距固定值。
%    \begin{macrocode}
\fp_const:Nn \c_@@_line_spread_fp
  { \dim_ratio:nn { 20 pt } { 12 bp } / 1.2 }
%    \end{macrocode}
% \end{variable}
%
% \subsubsection{声明页}
%
% \begin{variable}{\c_@@_orig_auth_text_a_tl}
% 论文独创性声明及使用授权内容。
%    \begin{macrocode}
\tl_const:Nn \c_@@_orig_auth_text_a_tl
  {
    本论文是作者在导师指导下取得的研究成果。除了文中特别加以标注和致谢的地方外，论文中不包含其他人已经发表或撰写过的研究成果，不存在剽窃或抄袭行为。与作者一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
    \par
    现就论文的使用对云南大学授权如下：学校有权保留本论文（含电子版），也可以采用影印、缩印或其他复制手段保存论文；学校有权公布论文的全部或部分内容，可以将论文用于查阅或借阅服务；学校有权向有关机构送交学位论文用于学术规范审查、社会监督或评奖；学校有权将学位论文的全部或部分内容录入有关数据库用于检索服务。
  }
%    \end{macrocode}
% \end{variable}
%
% \begin{variable}{\c_@@_orig_auth_sign_clist}
% 声明页签名项目。
%    \begin{macrocode}
\clist_const:Nn \c_@@_orig_auth_sign_clist
  { 研究生签名, 导师签名, 日期 }
%    \end{macrocode}
% \end{variable}
%
% \subsubsection{杂项}
%
% \begin{variable}{\c_@@_thesis_type_clist,
%   \c_@@_degree_type_clist}
% 论文类型与学位类型。
%    \begin{macrocode}
\clist_const:Nn \c_@@_thesis_type_clist
  { 博士研究生学位论文, 硕士研究生学位论文, 本科毕业论文 }
\clist_const:Nn \c_@@_degree_type_clist
  { 学术学位, 专业学位 }
%    \end{macrocode}
% \end{variable}
%
% \begin{variable}{\c_@@_secret_clist}
% 五种密级。
%    \begin{macrocode}
\clist_const:Nn \c_@@_secret_clist { 公开, 内部, 秘密, 机密, 绝密 }
%    \end{macrocode}
% \end{variable}
%
% 默认名称。注意空格是忽略掉的。
%    \begin{macrocode}
\clist_map_inline:nn
  {
    { secret_level       } { 密级                           },
    { secret_star        } { \textrm { \bigstar }           },
    { UDC                } { UDC                            },
    { number             } { 编号                            },
    { student_id         } { 学号                            },
    { department         } { 学院（所、中心）                 },
    { major              } { 专业名称                        },
    { major_professional } { 研究方向                        },
    { author             } { 研究生姓名                      },
    { supervisor         } { 导师姓名                        },
    { professional_title } { 职称                            },
    { date               } { 完成日期                        },
    { instructors        } { 指导小组成员                    },
    { author_sign        } { 作者签名                        },
    { supervisor_sign    } { 导师签名                        },
    { sign_date          } { 日期                            },
    { toc                } { 目 \quad 录                     },
    { lof                } { 插图目录                        },
    { lot                } { 表格目录                        },
    { bib_en             } { Bibliography                    },
    { pdf_creator        } { LaTeX~ with~ YNUthesis~ class   },
    { orig_auth          } { 论文独创性声明及使用授权          },
    { orig_auth_text_b   } { （内部或保密的论文在解密后应遵循此规定） }
  }
  { \@@_define_name:nn #1 }
\clist_map_inline:nn
  {
    { abstract } { 摘 \quad 要 } { Abstract          },
    { keywords } { 关键字      } { Keywords:         },
    { clc      } { 分类号      } { CLC~ code:        },
    { jel      } { JEL 分类号  } { JEL~ code:        },
    { notation } { 符号表      } { List~ of~ Symbols }
  }
  { \@@_define_name:nnn #1 }
%    \end{macrocode}
%
% 默认定理头名称。
%    \begin{macrocode}
\clist_map_inline:nn
  {
    { proof      } { 证明 } { Proof      },
    { axiom      } { 公理 } { Axiom      },
    { corollary  } { 推论 } { Corollary  },
    { definition } { 定义 } { Definition },
    { example    } { 例   } { Example    },
    { lemma      } { 引理 } { Lemma      },
    { theorem    } { 定理 } { Theorem    }
  }
  { \@@_define_name:nnn #1 }
%</definition>
%    \end{macrocode}
% 
%   \subsection{视觉识别系统 \pkg{YNUlogo}}
%    \begin{macrocode}
%<*logo>
\RequirePackage { xcolor, tikz }
%    \end{macrocode}
%
% \begin{variable}{\c_@@_default_arg_tl}
% 默认参数。
%    \begin{macrocode}
\tl_const:Nn \c_@@_default_arg_tl { x = 1 pt, y = 1 pt }
%    \end{macrocode}
% \end{variable}
%
% \begin{macro}{\@@_tikz:nn,\@@_tikz:nx}
% 对 \env{tikzpicture} 环境的封装。
%    \begin{macrocode}
\cs_new_protected:Npn \@@_tikz:nn #1#2
  {
    \begin{tikzpicture} [#2]
      #1
    \end{tikzpicture}
  }
\cs_generate_variant:Nn \@@_tikz:nn { nx }

\NewDocumentCommand \YNUemblem { O { } }
  {
    \@@_tikz:nx
      { \YNUlogo@emblem }
      { \c_@@_default_arg_tl, #1, yscale = -1.0, xscale = 1.0 }
  }

\NewDocumentCommand \YNUname { O { } }
  {
    \@@_tikz:nx
      { \YNUlogo@name }
      { \c_@@_default_arg_tl, #1, yscale = -1.0, xscale = 1.0 }
  }

\NewDocumentCommand \YNUnameTwo { O { } }
  {
    \@@_tikz:nx
      { \YNUlogo@nameTwo }
      { \c_@@_default_arg_tl, #1, yscale = 1.0, xscale = 1.0 }
  }
%    \end{macrocode}
% \end{macro}
%
%    \subsubsection{绘制``云南大学''校徽}
%    \begin{macrocode}
\definecolor{YNUlogoGreen}{RGB}{48,112,76}
\definecolor{YNUlogoBlue}{RGB}{43,75,157}

\def\YNUlogo@emblem{%
                          \YNUlogo@emblem@building;
  \path[fill=YNUlogoBlue] \YNUlogo@emblem@year
                          \YNUlogo@emblem@ring@inner
                          \YNUlogo@emblem@yun
                          \YNUlogo@emblem@nan
                          \YNUlogo@emblem@da
                          \YNUlogo@emblem@xue
                          \YNUlogo@emblem@en
                          \YNUlogo@emblem@ring@outer;}
%    \end{macrocode}
%
% ``1923''年
%    \begin{macrocode}
\def\YNUlogo@emblem@year{%
  (24.6592,39.5145) --
  (24.6592,39.6377) -- (24.6142,39.6377) .. controls (24.5144,39.6377) and
  (24.4342,39.6084) .. (24.3697,39.5497) .. controls (24.3071,39.4851) and
  (24.2797,39.4206) .. (24.2797,39.3482) -- (24.4616,39.3482) .. controls
  (24.4616,39.3912) and (24.4793,39.4284) .. (24.5046,39.4636) .. controls
  (24.5418,39.4988) and (24.5790,39.5145) .. (24.6240,39.5145) --
  cycle(24.6592,38.5012) -- (24.6592,38.6166) -- (24.6415,38.6166) .. controls
  (24.5966,38.6166) and (24.5496,38.6382) .. (24.5144,38.6753) .. controls
  (24.4792,38.7105) and (24.4616,38.7770) .. (24.4616,38.8768) .. controls
  (24.4616,38.9492) and (24.4694,39.0078) .. (24.4968,39.0509) .. controls
  (24.5320,39.0861) and (24.5789,39.1096) .. (24.6415,39.1096) --
  (24.6592,39.1096) -- (24.6592,39.2250) -- (24.6142,39.2250) .. controls
  (24.5047,39.2250) and (24.4245,39.1956) .. (24.3599,39.1369) .. controls
  (24.2973,39.0802) and (24.2601,38.9941) .. (24.2601,38.8768) .. controls
  (24.2601,38.7614) and (24.2973,38.6753) .. (24.3599,38.6029) .. controls
  (24.4245,38.5384) and (24.5242,38.5012) .. (24.6494,38.5012) --
  cycle(23.7985,39.6221) -- (23.6088,39.6221) -- (23.6088,38.7614) --
  (23.3662,38.7614) -- (23.3662,38.6831) .. controls (23.4660,38.6831) and
  (23.5383,38.6675) .. (23.5912,38.6382) .. controls (23.6459,38.6030) and
  (23.6831,38.5599) .. (23.7007,38.5013) -- (23.7985,38.5013) --
  cycle(27.0475,39.3110) .. controls (27.0475,39.4128) and (27.0104,39.4930) ..
  (26.9302,39.5497) .. controls (26.8578,39.6084) and (26.7580,39.6377) ..
  (26.6309,39.6377) .. controls (26.5135,39.6377) and (26.4138,39.6084) ..
  (26.3414,39.5497) .. controls (26.2612,39.4929) and (26.2240,39.3991) ..
  (26.2240,39.2817) -- (26.4060,39.2817) .. controls (26.4060,39.3619) and
  (26.4314,39.4206) .. (26.4686,39.4558) .. controls (26.5135,39.4988) and
  (26.5683,39.5145) .. (26.6309,39.5145) .. controls (26.7033,39.5145) and
  (26.7581,39.4988) .. (26.7952,39.4636) .. controls (26.8402,39.4284) and
  (26.8578,39.3776) .. (26.8578,39.2973) .. controls (26.8578,39.2387) and
  (26.8304,39.1878) .. (26.7952,39.1585) .. controls (26.7483,39.1233) and
  (26.6857,39.1017) .. (26.5761,39.1017) -- (26.5761,38.9941) .. controls
  (26.6681,38.9941) and (26.7307,38.9785) .. (26.7659,38.9413) .. controls
  (26.8128,38.9061) and (26.8304,38.8553) .. (26.8304,38.7848) .. controls
  (26.8304,38.7320) and (26.8128,38.6890) .. (26.7855,38.6597) .. controls
  (26.7581,38.6323) and (26.7131,38.6167) .. (26.6407,38.6167) .. controls
  (26.5762,38.6167) and (26.5312,38.6382) .. (26.4960,38.6753) .. controls
  (26.4608,38.7105) and (26.4412,38.7614) .. (26.4314,38.8338) --
  (26.2515,38.8338) .. controls (26.2612,38.7321) and (26.3062,38.6538) ..
  (26.3688,38.5893) .. controls (26.4412,38.5306) and (26.5312,38.5012) ..
  (26.6407,38.5012) .. controls (26.7659,38.5012) and (26.8578,38.5306) ..
  (26.9204,38.5814) .. controls (26.9850,38.6382) and (27.0202,38.7047) ..
  (27.0202,38.7771) .. controls (27.0202,38.8553) and (27.0026,38.9140) ..
  (26.9654,38.9492) .. controls (26.9400,38.9942) and (26.8833,39.0216) ..
  (26.8031,39.0450) .. controls (26.8833,39.0587) and (26.9400,39.0861) ..
  (26.9850,39.1370) .. controls (27.0280,39.1878) and (27.0476,39.2465) ..
  (27.0476,39.3111)(26.0617,39.6221) -- (25.2480,39.6221) -- (25.2480,39.5204)
  .. controls (25.2754,39.4480) and (25.3184,39.3913) .. (25.3830,39.3267) ..
  controls (25.4377,39.2680) and (25.5199,39.2035) .. (25.6275,39.1291) ..
  controls (25.6998,39.0724) and (25.7546,39.0216) .. (25.7898,38.9707) ..
  controls (25.8270,38.9277) and (25.8446,38.8768) .. (25.8446,38.8201) ..
  controls (25.8446,38.7614) and (25.8270,38.7184) .. (25.7977,38.6832) ..
  controls (25.7722,38.6382) and (25.7273,38.6245) .. (25.6549,38.6245) ..
  controls (25.6080,38.6245) and (25.5649,38.6460) .. (25.5277,38.6832) ..
  controls (25.4828,38.7184) and (25.4632,38.7907) .. (25.4632,38.8925) --
  (25.2754,38.8925) .. controls (25.2832,38.7614) and (25.3184,38.6675) ..
  (25.3830,38.6030) .. controls (25.4554,38.5306) and (25.5551,38.5012) ..
  (25.6647,38.5012) .. controls (25.7899,38.5012) and (25.8798,38.5306) ..
  (25.9424,38.5893) .. controls (26.0070,38.6460) and (26.0442,38.7262) ..
  (26.0442,38.8279) .. controls (26.0442,38.9061) and (26.0070,38.9785) ..
  (25.9522,39.0372) .. controls (25.8896,39.1017) and (25.8173,39.1585) ..
  (25.7351,39.2250) .. controls (25.6451,39.2895) and (25.5727,39.3404) ..
  (25.5375,39.3776) .. controls (25.5004,39.4128) and (25.4632,39.4558) ..
  (25.4280,39.4988) -- (26.0618,39.4988) -- cycle(24.6592,39.6377) --
  (24.6592,39.5145) .. controls (24.7238,39.4988) and (24.7766,39.4636) ..
  (24.8137,39.4049) .. controls (24.8489,39.3326) and (24.8763,39.2250) ..
  (24.8861,39.0802) .. controls (24.8587,39.1232) and (24.8216,39.1663) ..
  (24.7766,39.1878) .. controls (24.7414,39.2094) and (24.7042,39.2172) ..
  (24.6592,39.2250) -- (24.6592,39.1096) .. controls (24.7238,39.1096) and
  (24.7766,39.0861) .. (24.8137,39.0509) .. controls (24.8489,39.0157) and
  (24.8666,38.9648) .. (24.8666,38.9062) .. controls (24.8666,38.8064) and
  (24.8489,38.7321) .. (24.8137,38.6890) .. controls (24.7766,38.6460) and
  (24.7238,38.6245) .. (24.6592,38.6167) -- (24.6592,38.5013) .. controls
  (24.7864,38.5013) and (24.8861,38.5443) .. (24.9585,38.6323) .. controls
  (25.0387,38.7184) and (25.0759,38.8553) .. (25.0759,39.0509) .. controls
  (25.0759,39.2328) and (25.0387,39.3698) .. (24.9585,39.4773) .. controls
  (24.8861,39.5732) and (24.7864,39.6299) .. (24.6592,39.6377)}
%    \end{macrocode}
%
% 小圈
%    \begin{macrocode}
\def\YNUlogo@emblem@ring@inner{%
  (25.4573,20.2021) ..
  controls (20.0233,20.2021) and (15.5927,24.6346) .. (15.5927,30.0686) ..
  controls (15.5927,35.5025) and (20.0233,39.9331) .. (25.4573,39.9331) ..
  controls (30.8912,39.9331) and (35.3218,35.5025) .. (35.3218,30.0686) ..
  controls (35.3218,24.6346) and (30.8912,20.2021) ..
  (25.4573,20.2021)(25.4573,19.9654) .. controls (31.0203,19.9654) and
  (35.5604,24.5035) .. (35.5604,30.0686) .. controls (35.5604,35.6317) and
  (31.0203,40.1698) .. (25.4573,40.1698) .. controls (19.8942,40.1698) and
  (15.3541,35.6317) .. (15.3541,30.0686) .. controls (15.3541,24.5035) and
  (19.8942,19.9654) .. (25.4573,19.9654)}
%    \end{macrocode}
%
% 大圈
%    \begin{macrocode}
\def\YNUlogo@emblem@ring@outer{%
  (25.4573,13.7744) ..
  controls (29.9445,13.7744) and (34.0190,15.6033) .. (36.9688,18.5551) ..
  controls (39.9205,21.5068) and (41.7514,25.5813) .. (41.7514,30.0686) ..
  controls (41.7514,39.0431) and (34.4317,46.3608) .. (25.4573,46.3608) ..
  controls (20.9700,46.3608) and (16.8955,44.5318) .. (13.9457,41.5801) ..
  controls (10.9940,38.6284) and (9.1631,34.5558) .. (9.1631,30.0686) ..
  controls (9.1631,21.0941) and (16.4828,13.7744) ..
  (25.4573,13.7744)(25.4573,14.3006) .. controls (16.7723,14.3006) and
  (9.6893,21.3836) .. (9.6893,30.0686) .. controls (9.6893,34.4091) and
  (11.4615,38.3506) .. (14.3174,41.2084) .. controls (17.1732,44.0643) and
  (21.1148,45.8346) .. (25.4573,45.8346) .. controls (34.1422,45.8346) and
  (41.2252,38.7516) .. (41.2252,30.0686) .. controls (41.2252,25.7261) and
  (39.4530,21.7846) .. (36.5971,18.9267) .. controls (33.7413,16.0708) and
  (29.7997,14.3006) .. (25.4573,14.3006)}
%    \end{macrocode}
%
% ``YUNNAN UNIVERSITY''字样
%    \begin{macrocode}
\def\YNUlogo@emblem@en{%
  %Y
  (11.5536,31.1289) --
  (12.5375,31.0409) -- (13.7718,29.9181) -- (13.8364,30.6536) --
  (13.0618,31.3010) -- (13.9361,31.7979) -- (14.0007,32.5295) --
  (12.5884,31.6179) -- (11.6045,31.7040) -- cycle(11.5536,31.1289)
  %N
  (14.1669,33.1280) --
  (12.9776,33.4918) .. controls (12.7605,33.5584) and (12.6158,33.6522) ..
  (12.5453,33.7755) .. controls (12.4749,33.8968) and (12.4691,34.0591) ..
  (12.5317,34.2625) .. controls (12.5650,34.3701) and (12.6100,34.4582) ..
  (12.6647,34.5286) .. controls (12.7195,34.5990) and (12.7821,34.6498) ..
  (12.8603,34.6811) .. controls (12.9190,34.7046) and (12.9797,34.7163) ..
  (13.0462,34.7163) .. controls (13.1107,34.7124) and (13.2066,34.6929) ..
  (13.3317,34.6538) -- (14.5230,34.2899) -- (14.6912,34.8396) --
  (13.4432,35.2210) .. controls (13.1087,35.3247) and (12.8232,35.3071) ..
  (12.5923,35.1682) .. controls (12.3596,35.0293) and (12.1874,34.7750) ..
  (12.0720,34.4014) .. controls (11.9605,34.0317) and (11.9605,33.7227) ..
  (12.0760,33.4782) .. controls (12.1914,33.2336) and (12.4144,33.0596) ..
  (12.7509,32.9578) -- (13.9988,32.5764) -- cycle(14.1669,33.1280)
  %N
  (12.7546,36.1873) --
  (14.8183,35.1350) -- (15.1411,35.7707) -- (14.2119,37.5429) --
  (15.6653,36.8015) -- (15.9176,37.2964) -- (13.8559,38.3468) --
  (13.5371,37.7209) -- (14.4760,35.9311) -- (13.0070,36.6803) --
  cycle(12.7546,36.1873)
  %N
  (14.2863,38.9923) --
  (15.9235,37.3551) -- (16.4262,37.8578) -- (16.0898,39.8315) --
  (17.2438,38.6755) -- (17.6390,39.0706) -- (16.0017,40.7078) --
  (15.5049,40.2090) -- (15.8433,38.2177) -- (14.6775,39.3836) --
  cycle(14.2863,38.9923)
  %A
  (17.5979,40.7822) --
  (18.1104,41.1167) -- (18.2395,40.3460) -- cycle(16.2110,41.0228) --
  (18.3921,39.6789) -- (18.8596,39.9821) -- (18.4820,42.4996) --
  (17.9422,42.1475) -- (18.0302,41.6213) -- (17.1773,41.0658) --
  (16.7353,41.3631) -- cycle(16.2110,41.0228)
  %N
  (18.8302,42.6893) --
  (19.6987,40.5416) -- (20.3579,40.8096) -- (20.8196,42.7559) --
  (21.4318,41.2418) -- (21.9482,41.4511) -- (21.0797,43.5970) --
  (20.4284,43.3329) -- (19.9628,41.3670) -- (19.3447,42.8967) --
  cycle(18.8302,42.6893)
  %U
  (23.6657,41.7817) --
  (23.5776,43.0238) .. controls (23.5620,43.2507) and (23.5992,43.4190) ..
  (23.6891,43.5285) .. controls (23.7772,43.6380) and (23.9258,43.7006) ..
  (24.1371,43.7163) .. controls (24.2505,43.7241) and (24.3483,43.7142) ..
  (24.4344,43.6889) .. controls (24.5205,43.6635) and (24.5909,43.6204) ..
  (24.6457,43.5618) .. controls (24.6906,43.5168) and (24.7220,43.4620) ..
  (24.7435,43.3994) .. controls (24.7650,43.3368) and (24.7826,43.2410) ..
  (24.7904,43.1079) -- (24.8784,41.8678) -- (25.4516,41.9069) --
  (25.3616,43.2096) .. controls (25.3361,43.5598) and (25.2188,43.8180) ..
  (25.0056,43.9842) .. controls (24.7924,44.1525) and (24.4911,44.2229) ..
  (24.1038,44.1955) .. controls (23.7165,44.1681) and (23.4290,44.0566) ..
  (23.2412,43.8610) .. controls (23.0554,43.6674) and (22.9732,43.3935) ..
  (22.9986,43.0453) -- (23.0886,41.7426) -- cycle(23.6657,41.7817)
  %N
  (26.0364,44.2268) --
  (25.7528,41.9284) -- (26.4609,41.8424) -- (27.8067,43.3212) --
  (27.6091,41.7015) -- (28.1607,41.6331) -- (28.4444,43.9315) --
  (27.7441,44.0175) -- (26.3846,42.5231) -- (26.5861,44.1584) --
  cycle(26.0364,44.2268)
  %I
  (29.0703,43.7574) --
  (28.5089,41.5118) -- (29.0742,41.3709) -- (29.6337,43.6165) --
  cycle(29.0703,43.7574)
  %V
  (30.9853,43.0493) --
  (29.1544,41.3123) -- (29.7432,41.0619) -- (31.0049,42.3294) --
  (30.9795,40.5357) -- (31.5624,40.2892) -- (31.5291,42.8184) --
  cycle(30.9853,43.0493)
  %E
  (32.9766,42.1240) --
  (31.6484,40.2286) -- (33.3326,39.0471) -- (33.6006,39.4325) --
  (32.3937,40.2775) -- (32.6167,40.5983) -- (33.6925,39.8452) --
  (33.9625,40.2305) -- (32.8866,40.9836) -- (33.1742,41.3925) --
  (34.3811,40.5455) -- (34.6608,40.9445) -- cycle(32.9766,42.1240)
  %R
  (34.5630,39.0745) --
  (34.9855,38.5718) .. controls (35.0951,38.4368) and (35.1576,38.3312) ..
  (35.1713,38.2490) .. controls (35.1831,38.1688) and (35.1537,38.0984) ..
  (35.0774,38.0358) .. controls (35.0070,37.9752) and (34.9346,37.9576) ..
  (34.8642,37.9850) .. controls (34.7938,38.0104) and (34.6940,38.1004) ..
  (34.5669,38.2510) -- (34.1600,38.7361) -- cycle(35.2065,40.3733) --
  (33.4324,38.8828) -- (34.3478,37.7933) .. controls (34.5473,37.5566) and
  (34.7312,37.4158) .. (34.9034,37.3688) .. controls (35.0735,37.3219) and
  (35.2418,37.3667) .. (35.4041,37.5038) .. controls (35.5097,37.5918) and
  (35.5782,37.6935) .. (35.6154,37.8128) .. controls (35.6506,37.9341) and
  (35.6467,38.0534) .. (35.6056,38.1747) .. controls (35.7034,38.1239) and
  (35.7894,38.1023) .. (35.8657,38.1121) .. controls (35.9401,38.1219) and
  (36.0418,38.1747) .. (36.1689,38.2706) .. controls (36.1807,38.2803) and
  (36.1983,38.2941) .. (36.2198,38.3097) .. controls (36.4486,38.4857) and
  (36.6149,38.5718) .. (36.7186,38.5698) -- (36.3000,39.0686) .. controls
  (36.2706,39.0628) and (36.2433,39.0550) .. (36.2139,39.0432) .. controls
  (36.1865,39.0296) and (36.1591,39.0099) .. (36.1318,38.9884) --
  (36.0124,38.8887) .. controls (35.8481,38.7517) and (35.7249,38.6833) ..
  (35.6388,38.6833) .. controls (35.5547,38.6812) and (35.4608,38.7439) ..
  (35.3572,38.8652) -- (35.3474,38.8750) -- (34.9268,39.3777) --
  (35.5801,39.9273) -- cycle(35.2065,40.3733)
  %S
  (36.2609,37.8402) --
  (36.5406,37.3160) -- (36.5602,37.3258) .. controls (36.6736,37.3864) and
  (36.7890,37.3845) .. (36.9025,37.3140) .. controls (37.0179,37.2455) and
  (37.1274,37.1125) .. (37.2292,36.9189) .. controls (37.3094,36.7702) and
  (37.3465,36.6431) .. (37.3465,36.5394) .. controls (37.3465,36.4357) and
  (37.3074,36.3614) .. (37.2272,36.3203) .. controls (37.1587,36.2832) and
  (37.0942,36.2832) .. (37.0355,36.3203) .. controls (36.9749,36.3555) and
  (36.8947,36.4494) .. (36.7930,36.6020) -- (36.5621,36.9463) .. controls
  (36.3939,37.1966) and (36.2296,37.3590) .. (36.0692,37.4353) .. controls
  (35.9108,37.5116) and (35.7464,37.5037) .. (35.5782,37.4118) .. controls
  (35.3767,37.3062) and (35.2613,37.1301) .. (35.2300,36.8817) .. controls
  (35.2007,36.6333) and (35.2633,36.3634) .. (35.4217,36.0660) .. controls
  (35.5900,35.7472) and (35.7817,35.5301) .. (35.9988,35.4127) .. controls
  (36.2120,35.2953) and (36.4213,35.2914) .. (36.6286,35.4009) --
  (36.6463,35.4107) -- (36.3744,35.9193) .. controls (36.2668,35.8763) and
  (36.1651,35.8841) .. (36.0692,35.9408) .. controls (35.9753,35.9976) and
  (35.8853,36.1032) .. (35.8032,36.2577) .. controls (35.7269,36.4025) and
  (35.6878,36.5238) .. (35.6878,36.6255) .. controls (35.6857,36.7272) and
  (35.7230,36.7976) .. (35.7973,36.8367) .. controls (35.8560,36.8680) and
  (35.9127,36.8680) .. (35.9655,36.8367) .. controls (36.0184,36.8035) and
  (36.1025,36.7018) .. (36.2198,36.5316) -- (36.4624,36.1736) .. controls
  (36.6286,35.9252) and (36.7949,35.7667) .. (36.9573,35.6963) .. controls
  (37.1196,35.6239) and (37.2898,35.6357) .. (37.4659,35.7296) .. controls
  (37.6928,35.8509) and (37.8179,36.0347) .. (37.8375,36.2831) .. controls
  (37.8590,36.5316) and (37.7749,36.8328) .. (37.5852,37.1888) .. controls
  (37.4033,37.5272) and (37.2037,37.7561) .. (36.9807,37.8715) .. controls
  (36.7597,37.9888) and (36.5348,37.9849) .. (36.3059,37.8617) --
  cycle(36.2609,37.8402)
  %I
  (38.3167,35.6827) --
  (36.1552,34.8513) -- (36.3645,34.3095) -- (38.5260,35.1389) --
  cycle(38.3167,35.6827)
  %T
  (37.1548,32.8190) --
  (38.9681,33.1711) -- (38.8586,33.7364) -- (37.0453,33.3823) --
  (36.8946,34.1608) -- (36.4350,34.0709) -- (36.8477,31.9505) --
  (37.3074,32.0404) -- cycle(37.1548,32.8190)
  %Y
  (39.2850,31.1465) --
  (38.3030,31.0252) -- (36.8633,31.8683) -- (36.9533,31.1348) --
  (37.8453,30.6634) -- (37.0942,29.9963) -- (37.1841,29.2667) --
  (38.3754,30.4501) -- (39.3554,30.5714) -- cycle(39.2850,31.1465)}
%    \end{macrocode}
%
% ``云''字样
%    \begin{macrocode}
\def\YNUlogo@emblem@yun{%
  (15.4379,20.5101) ..
  controls (15.4232,20.4676) and (15.3916,20.4780) .. (15.3683,20.4809) ..
  controls (15.3190,20.6282) and (15.2471,20.7573) .. (15.1830,20.8608) ..
  controls (15.0930,20.9490) and (14.9255,21.1852) .. (14.9957,21.2984) ..
  controls (15.0742,21.2938) and (15.1219,21.1782) .. (15.1446,21.1141) ..
  controls (15.1932,21.0221) and (15.2171,20.9835) .. (15.2480,20.9375) ..
  controls (15.2677,20.9017) and (15.2990,20.8632) .. (15.3525,20.7981) ..
  controls (15.3815,20.6978) and (15.4094,20.6048) ..
  (15.4379,20.5102)(16.1069,19.5184) .. controls (16.0849,19.6129) and
  (15.8812,19.8811) .. (15.8169,19.9996) .. controls (15.7241,20.2865) and
  (15.6379,20.5812) .. (15.4923,20.8509) .. controls (15.4746,20.9422) and
  (15.5814,21.0159) .. (15.6856,21.1240) .. controls (15.6817,21.2229) and
  (15.6705,21.2086) .. (15.6197,21.2873) .. controls (15.5270,21.3107) and
  (15.4870,21.4676) .. (15.4463,21.4923) .. controls (15.4003,21.3791) and
  (15.3723,21.3079) .. (15.3116,21.2962) .. controls (15.2271,21.3994) and
  (15.1985,21.5001) .. (15.2163,21.6999) .. controls (15.2976,21.7132) and
  (15.3819,21.9714) .. (15.3577,22.1441) .. controls (15.3894,22.2188) and
  (15.4960,22.4191) .. (15.3917,22.5589) .. controls (15.3684,22.5530) and
  (15.3389,22.5338) .. (15.3106,22.5005) .. controls (15.2948,22.4888) and
  (15.2821,22.4739) .. (15.2700,22.4525) .. controls (15.1584,22.3132) and
  (15.0463,22.0839) .. (15.0320,22.0592) .. controls (14.8917,22.0002) and
  (14.8520,21.9324) .. (14.8106,21.9108) .. controls (14.7569,21.8997) and
  (14.7159,21.9344) .. (14.6217,22.0394) .. controls (14.5186,22.2474) and
  (14.4679,22.3220) .. (14.7708,22.4329) .. controls (14.8017,22.4693) and
  (14.8403,22.5071) .. (14.8812,22.5482) .. controls (14.8606,22.5901) and
  (14.8537,22.6348) .. (14.8398,22.6782) .. controls (14.8004,22.6985) and
  (14.7570,22.7228) .. (14.7175,22.7438) .. controls (14.6645,22.7629) and
  (14.5409,22.8045) .. (14.5659,22.9171) .. controls (14.5827,22.9212) and
  (14.5961,22.9225) .. (14.6128,22.9273) .. controls (14.6440,22.8817) and
  (14.6862,22.8335) .. (14.7232,22.7955) .. controls (14.7975,22.8156) and
  (14.8306,22.9517) .. (14.8718,23.0749) .. controls (14.8745,23.1682) and
  (14.8745,23.1682) .. (14.8248,23.3560) .. controls (14.6553,23.3217) and
  (14.5606,23.2248) .. (14.4901,23.1712) .. controls (14.5047,22.9940) and
  (14.4792,22.7619) .. (14.4458,22.6696) .. controls (14.1323,22.6000) and
  (14.1541,22.7905) .. (14.1593,23.0648) .. controls (14.1842,23.0879) and
  (14.2095,23.1178) .. (14.2346,23.1473) .. controls (14.2268,23.1980) and
  (14.2218,23.2589) .. (14.2202,23.3170) .. controls (14.2174,23.3861) and
  (14.1924,23.4063) .. (14.1367,23.4135) .. controls (14.0619,23.4077) and
  (13.9935,23.4024) .. (13.9256,23.3961) .. controls (13.7254,23.2495) and
  (13.6330,23.2455) .. (13.4915,23.2060) .. controls (13.4007,22.9350) and
  (13.3333,22.5485) .. (13.2152,22.4015) .. controls (13.2063,22.3878) and
  (13.2025,22.3734) .. (13.2225,22.3572) .. controls (13.2615,22.3433) and
  (13.3075,22.3299) .. (13.3522,22.3236) .. controls (13.4912,22.3896) and
  (13.4912,22.3896) .. (13.8588,22.5083) .. controls (14.0067,22.4970) and
  (14.2765,22.0658) .. (14.3469,21.9547) .. controls (14.4090,21.6687) and
  (14.4581,21.5697) .. (14.3795,21.4024) .. controls (14.3675,21.3804) and
  (14.3528,21.3553) .. (14.3373,21.3301) .. controls (14.3276,21.3257) and
  (14.3145,21.3179) .. (14.3012,21.3100) .. controls (14.1080,21.2010) and
  (13.9197,21.0318) .. (13.7741,21.0848) .. controls (13.6165,21.0651) and
  (13.5150,21.0361) .. (13.4702,20.9503) .. controls (13.4996,20.8054) and
  (13.5908,20.6892) .. (13.6825,20.5804) .. controls (13.7284,20.5218) and
  (13.7781,20.4677) .. (13.8130,20.4125) .. controls (14.0468,20.1366) and
  (14.0381,20.0997) .. (14.2129,19.8512) -- (14.2793,19.7950) .. controls
  (14.4050,19.6883) and (14.5333,19.5855) .. (14.6619,19.4830) .. controls
  (14.7300,19.4575) and (14.7993,19.4429) .. (14.8758,19.4282) .. controls
  (15.0533,19.5248) and (14.8594,19.6708) .. (14.7654,19.8895) .. controls
  (14.7546,19.9436) and (14.7572,20.1635) .. (14.6922,20.2819) .. controls
  (14.6712,20.3241) and (14.6446,20.3532) .. (14.6094,20.3646) .. controls
  (14.4726,20.5313) and (14.5063,20.6985) .. (14.6460,20.9603) .. controls
  (14.6769,20.9664) and (14.7058,20.9789) .. (14.7323,20.9953) .. controls
  (14.7890,20.8523) and (14.8721,20.7179) .. (14.9542,20.5909) .. controls
  (15.3436,20.0003) and (15.4677,19.8377) .. (15.5562,19.4596) .. controls
  (15.7356,19.3848) and (15.8793,19.4350) .. (16.1070,19.5185)(16.2255,21.6931)
  .. controls (16.3047,21.6893) and (16.3172,21.7658) .. (16.3008,21.9015) ..
  controls (16.2758,22.0687) and (16.2136,22.2337) .. (16.1519,22.3765) ..
  controls (16.0872,22.3607) and (16.1041,22.3280) .. (16.0481,22.2930) ..
  controls (15.9139,22.3811) and (15.7997,22.7252) .. (15.8874,22.9553) ..
  controls (15.9041,22.9603) and (15.9267,22.9757) .. (15.9486,22.9607) ..
  controls (16.0903,22.7391) and (16.1788,22.5434) .. (16.2490,22.3573) ..
  controls (16.3122,22.3868) and (16.5198,22.6029) .. (16.4403,22.7843) ..
  controls (16.3781,22.8687) and (16.3195,22.9566) .. (16.2744,23.0456) ..
  controls (16.2361,23.1730) and (16.1633,23.3040) .. (16.1107,23.4441) ..
  controls (16.0540,23.5871) and (16.0213,23.7420) .. (16.0825,23.9050) ..
  controls (16.0979,23.9286) and (16.1192,23.9388) .. (16.1507,23.9171) ..
  controls (16.2206,23.8130) and (16.2486,23.7715) .. (16.3016,23.6692) ..
  controls (16.3340,23.6094) and (16.3719,23.5266) .. (16.4338,23.3983) ..
  controls (16.4475,23.1077) and (16.3760,23.0986) .. (16.6262,23.1837) ..
  controls (16.6659,23.2080) and (16.7050,23.2316) .. (16.7467,23.2660) ..
  controls (16.8659,23.2791) and (16.9829,23.2305) .. (17.1330,23.3695) ..
  controls (17.1599,23.4114) and (17.1770,23.4786) .. (17.1013,23.5038) ..
  controls (16.9549,23.5400) and (16.8221,23.7484) .. (16.7705,23.8925) ..
  controls (16.6187,23.7733) and (16.6218,23.6573) .. (16.5151,23.6589) ..
  controls (16.4836,23.7112) and (16.4548,23.7673) .. (16.4327,23.8237) ..
  controls (16.3161,24.0748) and (16.2333,24.3665) .. (16.1575,24.6588) ..
  controls (16.1291,24.6786) and (16.1015,24.7065) .. (16.0666,24.7233) ..
  controls (15.9982,24.7262) and (15.9326,24.7108) .. (15.8662,24.6967) ..
  controls (15.7553,24.6708) and (15.7720,24.4286) .. (15.7730,24.4212) ..
  controls (15.7893,24.2999) and (15.8095,24.1806) .. (15.8323,24.0730) ..
  controls (15.8712,23.8943) and (15.9143,23.7438) .. (15.7917,23.7027) ..
  controls (15.7525,23.7196) and (15.7290,23.7597) .. (15.7244,23.7967) ..
  controls (15.6971,23.9214) and (15.6697,24.0461) .. (15.6494,24.1714) ..
  controls (15.6378,24.2321) and (15.6258,24.2857) .. (15.6207,24.3474) ..
  controls (15.6092,24.4085) and (15.5342,24.4840) .. (15.4786,24.5311) ..
  controls (15.4362,24.5413) and (15.4079,24.5280) .. (15.3848,24.5097) ..
  controls (15.2820,24.3372) and (15.1015,24.1166) .. (15.1500,23.9865) ..
  controls (15.2135,23.9417) and (15.2925,23.9074) .. (15.3936,23.8999) ..
  controls (15.4844,23.7668) and (15.8270,23.3043) .. (15.8000,23.1815) ..
  controls (15.7749,23.1713) and (15.7458,23.1636) .. (15.7175,23.1751) ..
  controls (15.5911,23.3020) and (15.2645,23.3062) .. (15.1626,23.2086) ..
  controls (15.2847,22.9745) and (15.3970,22.8077) .. (15.5623,22.6167) ..
  controls (15.6509,22.4973) and (15.7348,22.3873) .. (15.8269,22.2782) ..
  controls (15.8469,22.2046) and (15.8598,22.1297) .. (15.8825,22.0663) ..
  controls (15.7098,22.0798) and (15.5593,21.9422) .. (15.4550,21.8396) ..
  controls (15.3997,21.7576) and (15.3953,21.7527) .. (15.4204,21.6792) ..
  controls (15.5301,21.6214) and (15.6751,21.5894) .. (15.7920,21.5788) ..
  controls (15.8881,21.5730) and (15.9779,21.5734) .. (16.0320,21.5844) ..
  controls (16.0462,21.6237) and (16.0462,21.6237) .. (16.0047,21.8296) ..
  controls (16.0005,21.8464) and (15.9947,21.8630) .. (15.9904,21.8798) ..
  controls (16.0092,21.8950) and (16.0272,21.8930) .. (16.0513,21.8848) ..
  controls (16.1225,21.8560) and (16.2021,21.7253) .. (16.2255,21.6930)}
%    \end{macrocode}
%
% ``南''字样
%    \begin{macrocode}
\def\YNUlogo@emblem@nan{%
  (20.5036,19.1730) ..
  controls (19.9143,19.0059) and (20.1379,19.3411) .. (20.2299,19.8687) ..
  controls (20.2548,19.9107) and (20.4649,20.1379) .. (20.5569,20.1905) ..
  controls (20.6283,20.1928) and (20.7513,20.2306) .. (20.8515,20.2316) ..
  controls (20.9017,20.2324) and (20.9489,20.2269) .. (20.9786,20.2048) ..
  controls (21.0193,20.1160) and (21.0211,20.0376) .. (21.0191,19.9610) ..
  controls (20.9629,19.9172) and (20.8380,19.5859) .. (20.6550,19.3895) ..
  controls (20.6158,19.3228) and (20.5306,19.1938) ..
  (20.5036,19.1731)(22.3580,15.5516) .. controls (22.3022,15.6581) and
  (22.2612,15.7690) .. (22.2122,15.8795) .. controls (22.0525,16.0222) and
  (21.9158,16.1996) .. (21.6876,16.3529) .. controls (21.6475,16.3876) and
  (21.6283,16.3666) .. (21.6007,16.3413) .. controls (21.5746,16.0300) and
  (21.7060,15.7155) .. (21.6430,15.4819) .. controls (21.6165,15.3835) and
  (21.5296,15.3755) .. (21.4067,15.3823) .. controls (21.2476,15.4352) and
  (21.2635,16.2115) .. (21.2071,16.6453) .. controls (20.9343,17.0501) and
  (20.5445,17.3383) .. (20.1498,17.6132) .. controls (20.0380,17.6996) and
  (19.9486,17.7872) .. (19.9315,17.8833) .. controls (20.1583,18.0500) and
  (20.3599,18.1415) .. (20.5163,18.0316) .. controls (20.5380,17.9855) and
  (20.8688,17.6542) .. (20.9486,17.6614) .. controls (20.9268,17.7535) and
  (20.9169,17.8530) .. (20.9499,17.9569) .. controls (21.0252,17.9231) and
  (21.0906,17.8498) .. (21.1553,17.7475) .. controls (21.3004,17.5236) and
  (21.4056,17.1995) .. (21.4523,17.0592) .. controls (21.7031,16.6461) and
  (22.3118,16.1715) .. (22.6495,15.8481) .. controls (22.6478,15.8128) and
  (22.6457,15.7783) .. (22.6369,15.7450) -- (22.6299,15.7190) .. controls
  (22.5845,15.5761) and (22.4604,15.5658) .. (22.3580,15.5517)(22.4515,16.7992)
  .. controls (22.4251,16.9620) and (21.7183,17.4967) .. (21.2013,17.9188) ..
  controls (20.9575,18.1184) and (20.7563,18.2924) .. (20.6829,18.3892) ..
  controls (20.5878,18.4290) and (20.5274,18.4530) .. (20.4425,18.5043) --
  (20.3884,18.5324) .. controls (20.3135,18.6375) and (20.2881,18.6859) ..
  (20.2519,18.8656) .. controls (20.3152,18.8915) and (20.3980,18.8829) ..
  (20.4839,18.8599) .. controls (20.6226,18.8227) and (20.7658,18.7493) ..
  (20.8604,18.6811) .. controls (20.8842,18.6897) and (20.9124,18.6887) ..
  (20.9420,18.6951) .. controls (20.9055,18.7679) and (20.9244,18.8464) ..
  (20.9277,18.9325) .. controls (21.1274,18.9633) and (21.1174,18.9524) ..
  (21.3409,19.1255) .. controls (21.3151,19.2667) and (21.1284,19.3375) ..
  (21.0958,19.5305) .. controls (21.2090,19.5852) and (21.4057,19.5539) ..
  (21.5220,19.7771) .. controls (21.4926,19.8220) and (21.4892,19.8709) ..
  (21.5214,19.9324) .. controls (21.5928,19.9366) and (21.6573,19.9526) ..
  (21.7384,19.9236) .. controls (21.8237,19.8993) and (21.8732,19.9231) ..
  (21.9440,19.9256) .. controls (21.9931,19.8963) and (22.0250,19.8583) ..
  (22.0479,19.8341) .. controls (22.0539,19.7254) and (22.0669,19.6168) ..
  (22.0833,19.5203) .. controls (22.0043,19.4966) and (22.0044,19.3567) ..
  (21.9816,19.2717) .. controls (22.0227,19.1699) and (22.0284,19.0729) ..
  (22.0502,18.9705) .. controls (21.9687,18.9209) and (21.8818,18.8870) ..
  (21.7934,18.8842) .. controls (21.8026,18.7655) and (21.7318,18.7031) ..
  (21.7359,18.6452) .. controls (21.6821,18.6310) and (21.6265,18.6103) ..
  (21.5760,18.6031) .. controls (21.6339,18.5311) and (21.9013,18.3108) ..
  (22.0197,18.3291) .. controls (22.0600,18.0846) and (21.9024,18.0269) ..
  (21.8374,17.9950) .. controls (21.8875,17.6780) and (22.0903,17.6165) ..
  (22.2858,17.4233) .. controls (22.3142,17.4230) and (22.3378,17.4308) ..
  (22.3757,17.4413) .. controls (22.4518,17.6188) and (22.5241,18.1017) ..
  (22.5550,18.3478) .. controls (22.5337,18.4528) and (22.5057,18.5589) ..
  (22.4928,18.6682) .. controls (22.2755,19.0729) and (21.8923,18.9310) ..
  (22.5373,19.3305) .. controls (22.5471,19.3660) and (22.5550,19.3679) ..
  (22.5780,19.4195) .. controls (22.6364,19.4532) and (22.6765,19.4600) ..
  (22.7491,19.4405) .. controls (22.7939,19.2662) and (22.8507,19.0810) ..
  (22.9077,18.8964) .. controls (22.9300,18.6646) and (23.0061,17.4424) ..
  (22.9616,17.3829) .. controls (22.9548,17.2511) and (22.9564,17.1235) ..
  (22.9590,17.0027) .. controls (22.7578,16.7238) and (22.6842,16.7156) ..
  (22.4516,16.7993)(21.3974,18.6509) .. controls (21.3974,18.7281) and
  (21.3819,18.8036) .. (21.3070,18.7880) .. controls (21.2304,18.5821) and
  (21.2442,18.6069) .. (21.2831,18.4907) .. controls (21.3206,18.4684) and
  (21.3544,18.4825) .. (21.3847,18.4992) .. controls (21.3881,18.5115) and
  (21.4003,18.5794) .. (21.3975,18.6509)}
%    \end{macrocode}
%
% ``大''字样
%    \begin{macrocode}
\def\YNUlogo@emblem@da{%
  (31.3322,19.9616) ..
  controls (31.3049,19.9383) and (31.2830,19.9232) .. (31.2642,19.9022) ..
  controls (31.1434,19.7951) and (31.0124,19.6608) .. (30.9002,19.5217) ..
  controls (30.8390,19.4398) and (30.7773,19.3568) .. (30.7192,19.2665) ..
  controls (30.5535,19.0139) and (30.4259,18.7471) .. (30.3653,18.5066) ..
  controls (30.4540,18.4800) and (30.5527,18.4562) .. (30.6590,18.4351) ..
  controls (30.6951,18.4413) and (30.7551,18.4443) .. (30.8258,18.4405) ..
  controls (30.9077,18.4249) and (30.8749,18.4351) .. (30.9457,18.4213) ..
  controls (31.0310,18.4106) and (31.1195,18.3931) .. (31.2056,18.3819) ..
  controls (31.2410,18.3708) and (31.2593,18.3665) .. (31.2800,18.3544) ..
  controls (31.4097,18.3060) and (31.5516,18.2617) .. (31.6183,18.2063) ..
  controls (31.6490,18.1940) and (31.5716,18.0995) .. (31.5639,18.0720) ..
  controls (31.5300,18.0050) and (31.4996,17.9366) .. (31.4824,17.8755) ..
  controls (31.4601,17.8024) and (31.4359,17.7387) .. (31.4199,17.6758) ..
  controls (31.4128,17.6739) and (31.3818,17.6744) .. (31.3739,17.6722) ..
  controls (31.3228,17.6640) and (31.3237,17.6812) .. (31.2781,17.7038) ..
  controls (31.2664,17.7144) and (31.2425,17.7352) .. (31.2406,17.7528) ..
  controls (31.2047,17.7928) and (31.1532,17.8285) .. (31.0934,17.8697) ..
  controls (30.8845,17.9975) and (30.5869,18.0833) .. (30.4467,18.0458) ..
  controls (30.5775,17.5576) and (31.2377,16.8956) .. (31.1724,16.4876) ..
  controls (31.0091,16.2600) and (30.9798,16.0874) .. (30.9039,15.8756) ..
  controls (30.8701,15.8613) and (30.8465,15.8519) .. (30.8293,15.8724) ..
  controls (30.4518,16.5354) and (30.3040,17.2776) .. (29.9226,17.9808) ..
  controls (29.5426,18.2862) and (29.0108,18.0934) .. (28.6026,18.0344) ..
  controls (28.5053,18.0243) and (28.4157,18.0171) .. (28.3298,18.0276) ..
  controls (28.3948,18.2517) and (28.4291,18.4027) .. (28.4778,18.4997) ..
  controls (28.5850,18.6863) and (28.7555,18.6732) .. (29.2713,18.6124) ..
  controls (29.2708,18.6458) and (29.2797,18.6725) .. (29.2975,18.7025) ..
  controls (29.0876,18.8628) and (28.8328,18.9768) .. (28.6161,19.0683) ..
  controls (28.5390,19.0796) and (28.4273,19.0925) .. (28.3139,19.1116) ..
  controls (28.1301,19.1455) and (27.9422,19.1951) .. (27.9174,19.2876) ..
  controls (27.9735,19.3286) and (27.9735,19.3286) .. (28.0859,19.3419) ..
  controls (28.1392,19.3310) and (28.1967,19.3297) .. (28.2578,19.3208) ..
  controls (28.5191,19.3078) and (28.8194,19.3058) .. (29.1317,19.2560) ..
  controls (29.3919,19.1055) and (29.6829,18.7227) .. (29.9859,18.6780) ..
  controls (30.2101,18.8975) and (30.3855,19.4837) .. (30.5448,19.9169) ..
  controls (30.5894,20.0295) and (30.6293,20.1309) .. (30.6647,20.2152) ..
  controls (30.6741,20.2428) and (30.6850,20.2618) .. (30.6943,20.2895) ..
  controls (30.7145,20.3368) and (30.7454,20.3779) .. (30.8437,20.4462) ..
  controls (30.9375,20.4377) and (31.0311,20.4301) .. (31.1249,20.4216) ..
  controls (31.2666,20.4113) and (31.3073,20.3958) .. (31.4003,20.3871) ..
  controls (31.5596,20.3223) and (31.6774,20.2867) .. (31.7759,20.0729) ..
  controls (31.6884,20.0239) and (31.5929,19.9963) .. (31.3321,19.9616)}
%    \end{macrocode}
%
% ``学''字样
%    \begin{macrocode}
\def\YNUlogo@emblem@xue{%
  (37.5973,22.8795) ..
  controls (37.5630,22.8814) and (37.5218,22.8824) .. (37.4784,22.8890) ..
  controls (37.3480,22.8991) and (37.1897,22.9315) .. (37.1578,22.9797) ..
  controls (37.1704,23.0017) and (37.2082,23.0152) .. (37.2525,23.0195) ..
  controls (37.3794,23.0352) and (37.5821,22.9773) ..
  (37.5973,22.8795)(36.8929,22.3562) .. controls (36.9600,22.2881) and
  (36.9331,22.2321) .. (36.9060,22.1945) .. controls (36.8892,22.1864) and
  (36.8761,22.1830) .. (36.8657,22.1765) .. controls (36.8021,22.1480) and
  (36.7738,22.1292) .. (36.6547,22.0969) .. controls (36.6374,22.1188) and
  (36.6222,22.1336) .. (36.6032,22.1506) .. controls (36.6026,22.2519) and
  (36.6001,22.2588) .. (36.6218,22.3173) .. controls (36.6218,22.3173) and
  (36.6248,22.3224) .. (36.6229,22.3292) .. controls (36.7107,22.3366) and
  (36.8029,22.3430) .. (36.8930,22.3562)(36.2694,22.5567) .. controls
  (36.2640,22.5473) and (36.2683,22.5340) .. (36.2670,22.5223) --
  (36.2646,22.5182) .. controls (36.2160,22.5044) and (36.1645,22.4870) ..
  (36.1203,22.4826) .. controls (36.1448,22.5043) and (36.1652,22.5284) ..
  (36.1938,22.5591) -- (36.2006,22.5605) .. controls (36.2213,22.5550) and
  (36.2442,22.5533) .. (36.2694,22.5565)(36.3601,22.3554) .. controls
  (36.3935,22.3014) and (36.3935,22.3014) .. (36.4036,22.2359) .. controls
  (36.4087,22.2329) and (36.4060,22.2285) .. (36.4076,22.2222) .. controls
  (36.3423,22.2126) and (36.2437,22.2044) .. (36.2342,22.2810) .. controls
  (36.2435,22.2871) and (36.2588,22.3020) .. (36.2753,22.3099) .. controls
  (36.2871,22.3210) and (36.3023,22.3361) .. (36.3146,22.3469) .. controls
  (36.3258,22.3464) and (36.3396,22.3499) .. (36.3602,22.3555)(36.5556,23.4218)
  .. controls (36.6428,23.4073) and (36.7358,23.3954) .. (36.8224,23.3921) ..
  controls (36.8625,23.3700) and (36.8366,23.3462) .. (36.8283,23.3300) ..
  controls (36.8047,23.3192) and (36.7810,23.3101) .. (36.7644,23.3013) ..
  controls (36.6653,23.2640) and (36.6093,23.2481) .. (36.5384,23.2482) ..
  controls (36.4836,23.1729) and (36.3921,23.2496) .. (36.3535,23.2665) ..
  controls (36.3403,23.3452) and (36.3075,23.4520) .. (36.2228,23.5309) ..
  controls (35.9977,23.4898) and (35.8089,23.4084) .. (35.6168,23.4545) ..
  controls (35.5963,23.5723) and (35.7840,23.6718) .. (35.9167,23.7906) ..
  controls (35.9197,23.7957) and (35.9244,23.7926) .. (35.9268,23.7969) ..
  controls (36.1689,23.9595) and (36.1689,23.9595) .. (36.1960,23.9970) ..
  controls (36.1882,24.0548) and (36.0658,24.2736) .. (36.0038,24.3506) ..
  controls (35.9145,24.3762) and (35.8967,24.3243) .. (35.8732,24.3077) ..
  controls (35.7612,24.1758) and (35.6631,24.0669) .. (35.5804,23.9849) ..
  controls (34.8351,23.2779) and (34.9190,24.3249) .. (34.2927,24.1420) ..
  controls (34.2541,24.0346) and (34.2013,23.8924) .. (34.1513,23.7438) ..
  controls (34.1295,23.6852) and (34.1143,23.6289) .. (34.0929,23.5701) ..
  controls (34.0498,23.4240) and (34.0156,23.2830) .. (34.0098,23.1799) ..
  controls (34.0403,23.1923) and (34.0455,23.2159) .. (34.0947,23.2254) ..
  controls (34.1838,23.2988) and (34.2376,23.3807) .. (34.2920,23.4552) ..
  controls (34.3343,23.5078) and (34.3715,23.5515) .. (34.4266,23.5848) ..
  controls (34.4619,23.6058) and (34.5098,23.6264) .. (34.5647,23.6295) ..
  controls (34.5719,23.5715) and (34.8167,23.4726) .. (34.8915,23.4169) ..
  controls (34.9187,23.4047) and (34.9227,23.3867) .. (34.9021,23.3637) ..
  controls (34.8900,23.3533) and (34.8779,23.3424) .. (34.8660,23.3313) ..
  controls (34.8143,23.2727) and (34.7618,23.2438) .. (34.7095,23.2143) ..
  controls (34.6792,23.2025) and (34.6527,23.1884) .. (34.6221,23.1768) ..
  controls (34.4913,23.1194) and (34.5066,23.0781) .. (34.5058,23.0158) ..
  controls (34.4958,22.8858) and (34.4874,22.8099) .. (34.4758,22.6864) ..
  controls (34.4766,22.6566) and (34.4837,22.6286) .. (34.4940,22.6052) ..
  controls (34.6949,22.6363) and (34.8688,22.8557) .. (35.0331,23.0274) ..
  controls (35.0758,23.0798) and (35.1171,23.1211) .. (35.1579,23.1627) ..
  controls (35.1656,23.1647) and (35.1683,23.1691) .. (35.1705,23.1734) ..
  controls (35.2934,23.1915) and (35.5570,23.2287) .. (35.6329,23.0725) ..
  controls (35.5817,23.0657) and (35.5059,23.0275) .. (35.4510,22.9935) ..
  controls (35.3989,22.9644) and (35.3560,22.9305) .. (35.3432,22.9195) ..
  controls (35.3418,22.8964) and (35.3402,22.8740) .. (35.3388,22.8509) ..
  controls (35.3307,22.7128) and (35.3498,22.5720) .. (35.3995,22.4841) ..
  controls (35.4579,22.5448) and (35.5225,22.6265) .. (35.5920,22.7047) ..
  controls (35.6363,22.7502) and (35.6734,22.7939) .. (35.7173,22.8398) ..
  controls (35.9195,23.0368) and (36.1639,23.2035) .. (36.4740,23.1254) ..
  controls (36.4842,23.1127) and (36.5022,23.0967) .. (36.4732,23.0733) ..
  controls (36.2616,22.9522) and (36.0997,22.8269) .. (35.9526,22.7039) ..
  controls (35.9280,22.6827) and (35.9035,22.6611) .. (35.8819,22.6443) ..
  controls (35.8323,22.5631) and (35.8239,22.5524) .. (35.7825,22.5063) ..
  controls (35.7489,22.4752) and (35.6821,22.3802) .. (35.6757,22.3785) ..
  controls (35.6404,22.3317) and (35.6600,22.3043) .. (35.6741,22.2730) ..
  controls (35.7066,22.2774) and (35.8620,22.3118) .. (35.9222,22.2834) ..
  controls (36.0054,22.0692) and (36.2240,22.0266) .. (36.4243,21.9636) ..
  controls (36.4270,21.9382) and (36.5463,21.8579) .. (36.6610,21.7087) ..
  controls (36.8094,21.4398) and (37.0209,21.3499) .. (37.1997,21.1251) ..
  controls (37.2165,21.1187) and (37.2370,21.1129) .. (37.2507,21.1430) ..
  controls (37.2568,21.2758) and (37.2608,21.4162) .. (37.2647,21.5556) ..
  controls (37.2084,21.6837) and (37.1607,21.7346) .. (37.1492,21.8059) ..
  controls (37.1428,21.8568) and (37.1436,21.9100) .. (37.1722,22.0000) ..
  controls (37.1735,22.0117) and (37.1759,22.0158) .. (37.1763,22.0276) ..
  controls (37.3628,22.0709) and (37.5388,22.0116) .. (37.6570,21.9574) ..
  controls (37.7982,21.9058) and (37.9838,21.7449) .. (38.1404,21.8027) ..
  controls (38.1200,21.9507) and (38.0392,22.1390) .. (37.9415,22.3083) ..
  controls (37.8853,22.3228) and (37.8377,22.3324) .. (37.7860,22.3455) ..
  controls (37.6386,22.3355) and (37.3642,22.2806) .. (37.2931,22.3624) ..
  controls (37.2765,22.4671) and (37.2539,22.5099) .. (37.2091,22.5357) ..
  controls (37.1484,22.5529) and (37.0805,22.5687) .. (37.0224,22.5903) --
  (37.0180,22.5929) .. controls (36.9988,22.6215) and (36.9870,22.6521) ..
  (36.9751,22.6823) .. controls (36.7974,22.6611) and (36.7345,22.6143) ..
  (36.7059,22.7905) .. controls (36.7576,22.8377) and (36.8636,22.8482) ..
  (36.9767,22.8176) .. controls (36.9823,22.7971) and (36.9968,22.7714) ..
  (37.0174,22.7469) .. controls (37.0808,22.6810) and (37.1773,22.6845) ..
  (37.2218,22.5876) .. controls (37.2730,22.5635) and (37.3251,22.5513) ..
  (37.3621,22.5533) .. controls (37.4021,22.6019) and (37.4280,22.6467) ..
  (37.4799,22.6454) .. controls (37.5048,22.6077) and (37.5312,22.5810) ..
  (37.5613,22.5512) .. controls (37.6060,22.5552) and (37.6891,22.6495) ..
  (37.7587,22.7277) .. controls (37.7668,22.7416) and (37.7783,22.7522) ..
  (37.7905,22.7631) .. controls (37.8796,22.7941) and (37.9642,22.8289) ..
  (38.0531,22.8596) .. controls (38.1200,22.9040) and (38.1863,22.9662) ..
  (38.3086,23.0144) .. controls (38.3539,23.1082) and (38.3225,23.1822) ..
  (38.2633,23.2539) .. controls (38.0597,23.2293) and (37.8081,23.2741) ..
  (37.6458,23.2608) .. controls (37.6133,23.2856) and (37.6133,23.2856) ..
  (37.4393,23.2916) .. controls (37.4343,23.3656) and (37.4343,23.3656) ..
  (37.4573,23.4055) .. controls (37.5646,23.5086) and (37.6372,23.6034) ..
  (37.5350,23.8053) .. controls (37.5130,23.8545) and (37.5135,23.8613) ..
  (37.4662,23.8498) .. controls (37.2473,23.7986) and (37.2473,23.7986) ..
  (37.0077,23.7128) .. controls (36.9419,23.6910) and (36.8861,23.6760) ..
  (36.8283,23.6683) .. controls (36.6915,23.6457) and (36.5096,23.5678) ..
  (36.4276,23.4962) .. controls (36.4085,23.4725) and (36.3930,23.4570) ..
  (36.3902,23.4408) .. controls (36.4351,23.4386) and (36.4949,23.4276) ..
  (36.5559,23.4222)(35.3490,22.0577) .. controls (35.3279,22.0202) and
  (35.3406,21.9891) .. (35.3702,21.9618) .. controls (35.4694,21.9089) and
  (35.5094,21.8897) .. (35.5982,21.8546) .. controls (35.6223,21.8110) and
  (35.6146,21.8129) .. (35.5772,21.7777) .. controls (34.9918,21.6129) and
  (34.9917,21.3541) .. (34.6188,21.9787) .. controls (34.5436,22.0212) and
  (34.5306,22.0514) .. (34.5263,22.1184) .. controls (34.5542,22.1686) and
  (34.5695,22.1603) .. (34.6081,22.1782) .. controls (34.6935,22.1934) and
  (34.8249,22.2360) .. (34.9787,22.2362) .. controls (35.1332,22.2067) and
  (35.3068,22.2009) .. (35.4547,22.2106) .. controls (35.4762,22.1791) and
  (35.4288,22.1464) .. (35.3876,22.1049)(36.3671,21.2918) .. controls
  (36.3815,21.2960) and (36.4353,21.2763) .. (36.4830,21.3383) .. controls
  (36.3575,21.6527) and (36.0370,22.0345) .. (35.7242,22.0843) .. controls
  (35.7200,21.9631) and (35.7292,21.8470) .. (35.7647,21.7341) .. controls
  (36.0679,21.6133) and (36.1406,21.5539) .. (36.3671,21.2918)}
%    \end{macrocode}
%
% 会泽院
%    \begin{macrocode}
\def\YNUlogo@emblem@building{%
  \path[fill=YNUlogoGreen,nonzero~rule] (22.6309,25.5328) --
  (22.5668,27.4502) -- (22.4309,27.4530) -- (22.5038,25.5284) -- cycle;
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (22.5057,27.3114) ..
  controls (22.5115,27.3114) and (24.9000,27.2764) .. (25.5631,27.3004) ..
  controls (26.2184,27.3114) and (28.4991,27.3354) .. (28.5050,27.3354) --
  (28.5605,27.4721) .. controls (28.5547,27.4721) and (26.2124,27.4533) ..
  (25.5611,27.4424) -- (25.5591,27.4424) .. controls (24.8979,27.4184) and
  (22.5115,27.4534) .. (22.5056,27.4534) -- cycle;
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (28.4434,27.4588) --
  (28.4092,25.5656) -- (28.5304,25.5223) -- (28.5655,27.4736) -- cycle;
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (23.2001,25.5197) --
  (23.1571,27.3594) -- (24.0178,27.3594) -- (24.0588,25.5307) --
  (23.9963,25.2291) -- (23.2705,25.2401) -- cycle(23.2001,25.5197);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (24.7024,25.5088) --
  (24.6691,27.3594) -- (26.2457,27.3485) -- (26.2457,25.4957) --
  (26.1303,25.2073) -- (24.8061,25.1941) -- cycle(24.7024,25.5088);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (26.9089,25.5197) --
  (26.9089,27.3594) -- (27.8106,27.3594) -- (27.7891,25.5307) --
  (27.6854,25.2401) -- (26.9812,25.2291) -- cycle(26.9089,25.5197);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (21.2499,25.7164) ..
  controls (21.3027,25.4258) and (22.0069,25.2881) .. (22.0891,25.7032) ..
  controls (22.0793,26.0637) and (22.0597,26.4220) .. (22.0597,26.4220) --
  (21.2303,26.4570) .. controls (21.2401,26.2123) and (21.2499,25.9588) ..
  (21.2499,25.7163);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (29.7276,25.7273) ..
  controls (29.6747,25.4498) and (28.9706,25.3100) .. (28.8884,25.7164) ..
  controls (28.8982,26.0856) and (28.9197,26.4330) .. (28.9197,26.4330) --
  (29.7471,26.4680) .. controls (29.7373,26.2254) and (29.7275,25.9720) ..
  (29.7275,25.7273);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (20.0489,25.7841) ..
  controls (20.0997,25.5088) and (20.7746,25.3799) .. (20.8567,25.7732) ..
  controls (20.8469,26.1315) and (20.8372,26.4811) .. (20.8372,26.4811) --
  (20.0273,26.5029) .. controls (20.0391,26.2713) and (20.0391,26.0288) ..
  (20.0489,25.7841);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (30.9286,25.8081) ..
  controls (30.8758,25.5307) and (30.2029,25.3908) .. (30.1207,25.7972) ..
  controls (30.1305,26.1446) and (30.1423,26.4920) .. (30.1423,26.4920) --
  (30.9501,26.5270) .. controls (30.9384,26.2822) and (30.9384,26.0397) ..
  (30.9286,25.8081);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (18.6307,25.8475) ..
  controls (18.7129,25.5459) and (19.3134,25.4411) .. (19.3955,25.8343) ..
  controls (19.3857,26.1817) and (19.3760,26.5291) .. (19.3760,26.5291) --
  (18.5974,26.5750) .. controls (18.5974,26.3324) and (18.6307,26.0899) ..
  (18.6307,25.8474);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (32.3487,25.8781) ..
  controls (32.2646,25.5875) and (31.6660,25.4717) .. (31.5819,25.8649) ..
  controls (31.5917,26.2254) and (31.6035,26.5728) .. (31.6035,26.5728) --
  (32.3800,26.6078) .. controls (32.3800,26.3631) and (32.3487,26.1205) ..
  (32.3487,25.8780);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (17.5216,25.9261) ..
  controls (17.6038,25.6355) and (18.2043,25.5197) .. (18.2551,25.9130) ..
  controls (18.2454,26.2494) and (18.2356,26.5837) .. (18.2356,26.5837) --
  (17.4786,26.6187) .. controls (17.4904,26.3871) and (17.5099,26.1555) ..
  (17.5216,25.9261);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (33.4578,25.9829) ..
  controls (33.3737,25.6923) and (32.7732,25.5765) .. (32.7204,25.9698) ..
  controls (32.7321,26.3172) and (32.7419,26.6427) .. (32.7419,26.6427) --
  (33.4989,26.6886) .. controls (33.4891,26.4570) and (33.4676,26.2123) ..
  (33.4578,25.9829);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (16.3069,25.8016) ..
  controls (16.6003,25.6486) and (16.9094,25.8693) .. (16.9720,26.0201) ..
  controls (16.9563,26.3565) and (16.9407,26.6908) .. (16.9407,26.6908) --
  (16.1973,26.7280) .. controls (16.2130,26.4942) and (16.2912,26.0310) ..
  (16.3069,25.8016);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (34.6236,25.8431) ..
  controls (34.3517,25.6923) and (34.0642,25.9130) .. (34.0055,26.0638) ..
  controls (34.0211,26.3981) and (34.0349,26.7345) .. (34.0349,26.7345) --
  (34.7234,26.7804) .. controls (34.7098,26.5488) and (34.6373,26.0747) ..
  (34.6236,25.8431);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (21.2714,26.8744) --
  (21.9971,26.8744) .. controls (22.0284,26.8744) and (22.0499,26.8962) ..
  (22.0499,26.9202) -- (22.0499,27.7527) .. controls (22.0499,27.7767) and
  (22.0284,27.7986) .. (21.9971,27.7986) -- (21.2714,27.7986) .. controls
  (21.2401,27.7986) and (21.2206,27.7767) .. (21.2206,27.7527) --
  (21.2206,26.9202) .. controls (21.2206,26.8962) and (21.2401,26.8744) ..
  (21.2714,26.8744);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (29.7060,26.8853) --
  (28.9803,26.8853) .. controls (28.9490,26.8853) and (28.9295,26.9071) ..
  (28.9295,26.9421) -- (28.9295,27.7636) .. controls (28.9295,27.7877) and
  (28.9491,27.8117) .. (28.9803,27.8117) -- (29.7060,27.8117) .. controls
  (29.7373,27.8117) and (29.7569,27.7876) .. (29.7569,27.7636) --
  (29.7569,26.9421) .. controls (29.7569,26.9071) and (29.7373,26.8853) ..
  (29.7060,26.8853);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (20.0293,26.9312) --
  (20.7628,26.9180) .. controls (20.7844,26.9180) and (20.8059,26.9421) ..
  (20.8059,26.9770) -- (20.8059,27.7986) .. controls (20.8059,27.8226) and
  (20.7843,27.8444) .. (20.7628,27.8444) -- (20.0293,27.8444) .. controls
  (20.0078,27.8444) and (19.9863,27.8226) .. (19.9863,27.7986) --
  (19.9863,26.9770) .. controls (19.9863,26.9421) and (20.0078,26.9312) ..
  (20.0293,26.9312);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (30.9501,26.9421) --
  (30.2146,26.9421) .. controls (30.1931,26.9421) and (30.1716,26.9662) ..
  (30.1716,26.9880) -- (30.1716,27.8117) .. controls (30.1716,27.8445) and
  (30.1932,27.8685) .. (30.2146,27.8685) -- (30.9501,27.8685) .. controls
  (30.9697,27.8685) and (30.9912,27.8444) .. (30.9912,27.8226) --
  (30.9912,26.9880) .. controls (30.9912,26.9661) and (30.9696,26.9421) ..
  (30.9501,26.9421);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (18.6190,27.0120) --
  (19.3036,26.9880) .. controls (19.3349,26.9880) and (19.3545,27.0120) ..
  (19.3545,27.0360) -- (19.3349,27.8444) .. controls (19.3349,27.8816) and
  (19.3134,27.8925) .. (19.2919,27.9034) -- (18.6190,27.9384) .. controls
  (18.5877,27.9384) and (18.5779,27.9143) .. (18.5779,27.8816) --
  (18.5779,27.0579) .. controls (18.5779,27.0360) and (18.5877,27.0120) ..
  (18.6190,27.0120);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (32.3585,27.0229) --
  (31.6739,27.0011) .. controls (31.6445,27.0011) and (31.6230,27.0229) ..
  (31.6230,27.0470) -- (31.6445,27.8685) .. controls (31.6445,27.8925) and
  (31.6661,27.9144) .. (31.6856,27.9144) -- (32.3585,27.9493) .. controls
  (32.3898,27.9493) and (32.3996,27.9275) .. (32.3996,27.9034) --
  (32.3996,27.0710) .. controls (32.3996,27.0469) and (32.3898,27.0230) ..
  (32.3585,27.0230);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (17.4786,27.1060) --
  (18.1534,27.0470) .. controls (18.1730,27.0470) and (18.1945,27.0710) ..
  (18.1945,27.0929) -- (18.1730,27.8925) .. controls (18.1730,27.9275) and
  (18.1534,27.9384) .. (18.1221,27.9493) -- (17.4590,27.9843) .. controls
  (17.4062,27.9952) and (17.4160,27.9734) .. (17.4160,27.9384) --
  (17.4278,27.1519) .. controls (17.4278,27.1278) and (17.4473,27.1060) ..
  (17.4786,27.1060);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (33.4989,27.1169) --
  (32.8260,27.0710) .. controls (32.8045,27.0710) and (32.7830,27.0929) ..
  (32.7830,27.1169) -- (32.8045,27.9144) .. controls (32.8045,27.9384) and
  (32.8261,27.9603) .. (32.8554,27.9603) -- (33.5204,28.0083) .. controls
  (33.5713,28.0083) and (33.5615,27.9842) .. (33.5615,27.9603) --
  (33.5497,27.1737) .. controls (33.5497,27.1387) and (33.5302,27.1278) ..
  (33.4989,27.1169);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (15.9704,27.1628) --
  (16.8507,27.1278) .. controls (16.8917,27.1278) and (16.9309,27.1497) ..
  (16.9309,27.1737) -- (16.8918,27.9603) .. controls (16.8722,27.9952) and
  (16.8507,28.0083) .. (16.7920,28.0083) -- (15.9118,28.0411) .. controls
  (15.7964,28.0411) and (15.8159,28.0192) .. (15.8159,27.9843) --
  (15.8922,27.2086) .. controls (15.8922,27.1868) and (15.9333,27.1627) ..
  (15.9705,27.1627);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (34.9699,27.1868) --
  (34.1229,27.1388) .. controls (34.0857,27.1388) and (34.0485,27.1628) ..
  (34.0485,27.1868) -- (34.0857,27.9843) .. controls (34.1053,28.0084) and
  (34.1229,28.0302) .. (34.1796,28.0302) -- (35.0266,28.0542) .. controls
  (35.1400,28.0542) and (35.1205,28.0302) .. (35.1205,28.0084) --
  (35.0442,27.2327) .. controls (35.0442,27.2087) and (35.0070,27.1868) ..
  (34.9699,27.1868);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (15.5812,28.2749) --
  (15.5577,29.4657) -- (18.3255,29.4307) -- (18.8283,28.5393) --
  (21.5961,28.4475) -- (21.8426,28.0542) -- cycle(15.5812,28.2749);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (35.2789,28.3099) --
  (35.3005,29.4897) -- (32.5580,29.4547) -- (32.0612,28.5633) --
  (29.3168,28.4825) -- (29.0742,28.0783) -- cycle(35.2789,28.3099);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (19.0445,28.7787) --
  (18.4337,29.9398) -- (23.4583,29.8830) -- (23.6852,28.6682) -- cycle;
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (31.7928,28.7949) --
  (32.4495,29.9748) -- (27.4517,29.9372) -- (27.1886,28.6791) -- cycle;
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (22.1634,24.9276) ..
  controls (22.1634,24.9276) and (19.4992,25.0915) .. (18.9828,25.1483) ..
  controls (18.4527,25.2073) and (16.5573,25.5088) .. (16.5573,25.5088) --
  (16.5475,25.6923) .. controls (16.5475,25.6923) and (18.6307,25.3908) ..
  (19.1588,25.3449) .. controls (19.6968,25.2991) and (22.0793,25.1133) ..
  (22.1419,25.1133) .. controls (22.1517,24.9757) and (22.1634,24.9276) ..
  (22.1634,24.9276);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (28.8356,24.9648) ..
  controls (28.8356,24.9648) and (31.5409,25.1374) .. (32.0670,25.1964) ..
  controls (32.5874,25.2532) and (34.4828,25.5656) .. (34.4828,25.5656) --
  (34.4946,25.7513) .. controls (34.4946,25.7513) and (32.4211,25.4389) ..
  (31.8812,25.3908) .. controls (31.3433,25.3450) and (28.9197,25.1592) ..
  (28.8552,25.1592) .. controls (28.7945,25.1592) and (28.8356,24.9648) ..
  (28.8356,24.9648);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (22.4118,24.6501) --
  (22.3805,24.8118) .. controls (22.3805,24.8118) and (25.1679,24.7660) ..
  (25.4477,24.7790) .. controls (25.7802,24.7900) and (28.4522,24.8599) ..
  (28.4522,24.8599) -- (28.4307,24.6742) .. controls (28.4307,24.6742) and
  (25.5513,24.6152) .. (25.3322,24.6152) .. controls (25.1151,24.6042) and
  (22.4118,24.6501) .. (22.4118,24.6501);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (23.6852,28.6551) --
  (27.2199,28.6551) -- (27.2199,28.7840) -- (23.6544,28.7824) -- cycle;
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (23.5444,29.0964) --
  (27.3647,29.0964) -- (27.3647,29.2232) -- (23.5444,29.2232) --
  cycle(23.5444,29.0964);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (23.5295,29.6055) --
  (27.4201,29.6055) .. controls (27.4404,29.6055) and (27.4506,29.6164) ..
  (27.4506,29.6383) -- (27.4506,29.6973) .. controls (27.4506,29.7082) and
  (27.4405,29.7322) .. (27.4201,29.7322) -- (23.5295,29.7322) .. controls
  (23.5072,29.7322) and (23.4971,29.7082) .. (23.4971,29.6973) --
  (23.4971,29.6383) .. controls (23.4971,29.6164) and (23.5072,29.6055) ..
  (23.5295,29.6055);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (23.4247,30.1474) --
  (27.4555,30.1474) -- (27.4555,30.2632) -- (23.4247,30.2632) --
  cycle(23.4247,30.1474);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (23.0269,30.9417) --
  (27.7703,30.9417) -- (27.7703,31.0707) -- (23.0269,31.0707) --
  cycle(23.0269,30.9417);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (22.7854,31.3993) --
  (28.0688,31.3993) -- (28.0688,31.5501) -- (22.7854,31.5501) --
  cycle(22.7854,31.3993);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (22.5407,32.0351) --
  (28.2457,32.0351) -- (28.2457,32.1859) -- (22.5407,32.1859) --
  cycle(22.5407,32.0351);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (22.3020,32.7649) --
  (28.5424,32.7649) -- (28.5424,32.9156) -- (22.3020,32.9156) --
  cycle(22.3020,32.7649);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (21.9925,33.5624) --
  (28.8006,33.5624) -- (28.8006,33.7481) -- (21.9925,33.7481) --
  cycle(21.9925,33.5624);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (21.5329,34.4079) --
  (29.2519,34.4079) -- (29.2519,34.6526) -- (21.5329,34.6526) --
  cycle(21.5329,34.4079);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (20.5575,36.0160) --
  (25.1968,36.0750) -- (30.2297,36.0291) -- (30.2401,36.2607) --
  (25.2731,36.3285) -- (20.5575,36.2717) -- cycle(20.5575,36.0160);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (19.9882,36.8266) --
  (25.1798,36.9424) -- (30.8635,36.8616) -- (30.8739,37.1041) --
  (25.2564,37.2090) -- (19.9883,37.0932) -- cycle(19.9882,36.8266);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (18.9900,37.6837) --
  (25.0732,37.8557) -- (31.1573,37.7180) -- (31.1770,37.9715) --
  (25.1561,38.1463) -- (19.2578,37.9486) -- cycle;
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (21.0469,35.2054) --
  (25.1971,35.2644) -- (29.6836,35.2185) -- (29.7041,35.4501) --
  (25.2627,35.5201) -- (21.0367,35.4611) -- cycle(21.0469,35.2054);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (22.4529,24.8118) --
  (22.2240,24.9648) -- (22.2142,25.1374) -- (22.2358,25.1592) .. controls
  (22.5351,25.1592) and (25.1679,25.1024) .. (25.4066,25.1024) .. controls
  (25.6335,25.1024) and (28.3387,25.1723) .. (28.7417,25.1833) --
  (28.7632,25.0915) -- (28.7319,25.0107) -- (28.4209,24.8468) --
  (28.4313,24.6742) -- (28.8044,24.8817) -- (28.8357,24.8949) --
  (28.8455,24.9277) -- (28.8885,25.0675) -- (28.8885,25.1134) --
  (28.8455,25.2751) -- (28.8357,25.3341) -- (28.7848,25.3341) .. controls
  (28.7730,25.3341) and (25.6453,25.2532) .. (25.4067,25.2532) .. controls
  (25.1465,25.2532) and (22.2143,25.3100) .. (22.2046,25.3100) --
  (22.1733,25.3100) -- (22.1537,25.2751) -- (22.0911,25.2073) --
  (22.0793,25.1833) -- (22.0793,25.1483) -- (22.1008,24.9058) --
  (22.1008,24.8708) -- (22.1321,24.8468) -- (22.4143,24.6500) -- cycle;
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (22.5116,25.2226) --
  (22.6074,25.4586) -- (25.5298,25.4017) -- (25.5318,25.4017) --
  (28.4033,25.4935) -- (28.5090,25.2466) -- (28.6244,25.3056) --
  (28.4992,25.5962) -- (28.4816,25.6377) -- (28.4405,25.6355) --
  (25.5298,25.5437) -- (22.5683,25.6005) -- (22.5273,25.6027) --
  (22.5096,25.5612) -- (22.3942,25.2816) -- cycle(22.5116,25.2226);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (21.8309,28.7250) --
  (22.4529,27.6260) -- (22.4744,27.5910) -- (22.5155,27.5910) --
  (25.4477,27.5561) -- (28.4620,27.6260) -- (28.4933,27.6260) --
  (28.5148,27.6609) -- (29.1681,28.7490) -- (29.0117,28.7359) --
  (28.4209,27.7636) -- (25.4477,27.6959) -- (22.5468,27.7417) --
  (21.9874,28.7249) -- cycle(21.8309,28.7250);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (19.6342,37.9606) --
  (19.5109,37.9496) -- (19.4992,36.9315) .. controls (19.4992,36.9074) and
  (20.9193,35.2185) .. (21.2616,34.6636) .. controls (21.4592,34.3380) and
  (22.7423,31.8625) .. (22.7541,31.2704) .. controls (22.7541,31.1087) and
  (22.6700,31.1437) .. (22.6387,31.1087) .. controls (22.6171,31.0628) and
  (22.6289,30.9929) .. (22.6289,30.9820) .. controls (22.6289,30.9579) and
  (23.0846,30.8771) .. (23.2098,30.6696) .. controls (23.3448,30.4620) and
  (23.5233,29.5042) .. (23.5233,29.5042) .. controls (23.5492,29.8137) and
  (23.4485,30.3921) .. (23.2607,30.7854) -- (22.8460,31.3294) .. controls
  (22.8362,31.3294) and (22.1633,33.5624) .. (22.0186,33.7830) .. controls
  (21.9247,34.0037) and (20.3911,36.7567) .. (19.6967,37.6001) .. controls
  (19.5617,37.7639) and (19.6341,37.9606) .. (19.6341,37.9606);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (31.1672,37.9606) --
  (31.2924,37.9496) -- (31.2924,36.9315) .. controls (31.2924,36.9074) and
  (29.8723,35.2185) .. (29.5398,34.6636) .. controls (29.3324,34.3380) and
  (28.0590,31.8625) .. (28.0473,31.2704) .. controls (28.0375,31.1087) and
  (28.1099,31.2136) .. (28.1392,31.1786) .. controls (28.1725,31.1328) and
  (28.1725,30.9929) .. (28.1725,30.9820) .. controls (28.1725,30.9579) and
  (27.7891,30.8662) .. (27.6541,30.6564) .. controls (27.5309,30.4379) and
  (27.3842,29.4657) .. (27.3842,29.4657) .. controls (27.3744,29.7672) and
  (27.3646,30.3811) .. (27.5504,30.7722) -- (27.9436,31.3294) .. controls
  (27.9554,31.3294) and (28.6282,33.5624) .. (28.7730,33.7830) .. controls
  (28.8669,34.0037) and (30.4689,36.8747) .. (31.1633,37.7181) .. controls
  (31.2983,37.8797) and (31.1673,37.9606) .. (31.1673,37.9606);
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (23.7067,27.9144) --
  (23.5972,28.6785) -- (23.6838,28.6844) -- (23.7791,27.9035) -- cycle;
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (27.1475,27.9275) --
  (27.2350,28.6873) -- (27.1475,28.6682) -- (27.0751,27.9144) -- cycle;
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (19.5606,38.0582) --
  (19.0747,37.8098) -- (19.0239,37.7749) -- (19.0141,37.7180) --
  (18.9711,36.9184) -- (18.9711,36.8725) -- (19.0024,36.8375) .. controls
  (19.0142,36.8375) and (20.7629,34.9869) .. (21.1052,34.4888) .. controls
  (21.2499,34.2812) and (21.4592,33.9447) .. (21.6548,33.5864) .. controls
  (21.9032,33.1232) and (22.1536,32.6491) .. (22.2358,32.4524) .. controls
  (22.3277,32.2449) and (22.4118,32.0351) .. (22.4842,31.8144) .. controls
  (22.5566,31.6069) and (22.6192,31.3753) .. (22.6407,31.1087) --
  (22.8265,31.1328) .. controls (22.8050,31.4212) and (22.7444,31.6659) ..
  (22.6700,31.8975) .. controls (22.5879,32.1269) and (22.5057,32.3367) ..
  (22.4118,32.5442) .. controls (22.3277,32.7409) and (22.0793,33.2281) ..
  (21.8094,33.7022) .. controls (21.6235,34.0605) and (21.4162,34.4079) ..
  (21.2617,34.6264) .. controls (20.9409,35.0918) and (19.4171,36.7108) ..
  (19.1686,36.9665) -- (19.1980,37.7223) -- (19.5403,37.8230) -- cycle;
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (31.1496,37.7181) --
  (31.6132,37.6881) -- (31.6328,36.9665) .. controls (31.3941,36.7109) and
  (29.8723,35.0918) .. (29.5398,34.6265) .. controls (29.3950,34.4080) and
  (29.1877,34.0606) .. (28.9921,33.7022) .. controls (28.7319,33.2281) and
  (28.4835,32.7409) .. (28.4013,32.5442) .. controls (28.3700,32.4634) and
  (28.3270,32.3826) .. (28.2859,32.2908) .. controls (28.1314,31.9652) and
  (27.9749,31.6419) .. (27.9456,31.1896) -- (28.1314,31.1678) .. controls
  (28.1725,31.5829) and (28.3074,31.8844) .. (28.4522,32.1968) .. controls
  (28.4933,32.2777) and (28.5344,32.3585) .. (28.5774,32.4525) .. controls
  (28.6595,32.6491) and (28.8982,33.1232) .. (29.1564,33.5864) .. controls
  (29.3539,33.9338) and (29.5515,34.2812) .. (29.6963,34.4888) .. controls
  (30.0366,34.9870) and (31.7990,36.8376) .. (31.7990,36.8376) --
  (31.8303,36.8725) -- (31.8303,36.9184) -- (31.7893,37.7181) --
  (31.7893,37.7749) -- (31.7365,37.8741) -- (31.1711,37.9715) -- cycle;
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (16.1185,26.7586) --
  (17.2673,26.6755) -- (18.4331,26.5947) -- (19.9432,26.5029) --
  (22.0597,26.4461) -- (22.5351,26.4461) -- (22.5566,26.2473) --
  (20.7981,26.2953) -- (19.2743,26.3762) -- (18.0439,26.4679) --
  (17.2869,26.5269) -- (16.7059,26.5837) -- (16.2091,26.6056) -- cycle;
  %
  \path[fill=YNUlogoGreen,nonzero~rule] (34.7508,26.8045) --
  (33.7082,26.7105) -- (32.5580,26.6428) -- (31.0636,26.5488) --
  (28.9764,26.4811) -- (28.5148,26.4811) -- (28.5050,26.2954) --
  (30.2361,26.3412) -- (31.7306,26.4111) -- (32.9453,26.5138) --
  (33.6867,26.5728) -- (34.2578,26.6296) -- (34.7508,26.6537) --
  cycle(34.7508,26.8045);}
%    \end{macrocode}
%
%    \subsubsection{绘制``云南大学''校名}
%    \begin{macrocode}
\def\YNUlogo@name{%
  \path[fill=YNUlogoBlue] \YNUlogo@name@yun
                          \YNUlogo@name@nan
                          \YNUlogo@name@da
                          \YNUlogo@name@xue;}
%    \end{macrocode}
%
% ``云''字
%    \begin{macrocode}
\def\YNUlogo@name@yun{%
  (14.0842,44.9857) ..
  controls (14.1228,44.8866) and (14.0499,44.8568) .. (14.0033,44.8264) ..
  controls (13.6893,45.0168) and (13.3620,45.1395) .. (13.0881,45.2281) ..
  controls (12.7909,45.2495) and (12.1277,45.4195) .. (12.0813,45.7309) ..
  controls (12.2299,45.8427) and (12.4926,45.7072) .. (12.6317,45.6263) ..
  controls (12.8599,45.5348) and (12.9621,45.5015) .. (13.0881,45.4659) ..
  controls (13.1784,45.4314) and (13.2937,45.4100) .. (13.4898,45.3743) ..
  controls (13.6955,45.2377) and (13.8880,45.1129) ..
  (14.0842,44.9857)(16.8073,44.2202) .. controls (16.6230,44.3569) and
  (15.8457,44.5292) .. (15.5485,44.6445) .. controls (14.9423,45.0201) and
  (14.3361,45.4195) .. (13.6610,45.6834) .. controls (13.4898,45.8213) and
  (13.5695,46.1172) .. (13.5921,46.4714) .. controls (13.4338,46.6440) and
  (13.4355,46.6011) .. (13.2236,46.6652) .. controls (13.0204,46.5658) and
  (12.7084,46.7875) .. (12.5972,46.7698) .. controls (12.6875,46.4952) and
  (12.7458,46.3241) .. (12.6542,46.2100) .. controls (12.3440,46.2670) and
  (12.1384,46.4049) .. (11.8650,46.7924) .. controls (11.9910,46.9410) and
  (11.7485,47.5353) .. (11.4407,47.8098) .. controls (11.3836,47.9929) and
  (11.2695,48.5171) .. (10.8677,48.6098) .. controls (10.8345,48.5635) and
  (10.8107,48.4838) .. (10.8107,48.3804) .. controls (10.8000,48.3352) and
  (10.8000,48.2889) .. (10.8107,48.2318) .. controls (10.8226,47.8098) and
  (10.9712,47.2250) .. (10.9830,47.1585) .. controls (10.8203,46.8375) and
  (10.8526,46.6545) .. (10.8107,46.5523) .. controls (10.7311,46.4501) and
  (10.6039,46.4501) .. (10.2734,46.4952) .. controls (9.7695,46.7127) and
  (9.5638,46.7697) .. (9.9406,47.4330) .. controls (9.9406,47.5459) and
  (9.9525,47.6731) .. (9.9632,47.8098) .. controls (9.8622,47.8538) and
  (9.7813,47.9239) .. (9.6898,47.9809) .. controls (9.5876,47.9572) and
  (9.4723,47.9346) .. (9.3689,47.9120) .. controls (9.2441,47.8657) and
  (8.9576,47.7516) .. (8.8305,47.9929) .. controls (8.8542,48.0261) and
  (8.8768,48.0487) .. (8.8994,48.0832) .. controls (9.0254,48.0487) and
  (9.1752,48.0262) .. (9.3000,48.0143) .. controls (9.4034,48.1640) and
  (9.2548,48.4600) .. (9.1407,48.7453) .. controls (9.0028,48.9176) and
  (9.0028,48.9176) .. (8.6260,49.1803) .. controls (8.3728,48.8594) and
  (8.3503,48.5396) .. (8.3051,48.3352) .. controls (8.6022,48.0380) and
  (8.9113,47.5804) .. (8.9921,47.3629) .. controls (8.5333,46.7579) and
  (8.2813,47.1347) .. (7.8712,47.6375) .. controls (7.8978,47.7192) and
  (7.9016,47.8124) .. (7.8807,47.9014) .. controls (7.8184,47.9972) and
  (7.6991,48.0899) .. (7.5955,48.1854) .. controls (7.4845,48.3056) and
  (7.4086,48.3038) .. (7.2971,48.2318) .. controls (7.1711,48.1069) and
  (7.0558,47.9928) .. (6.9429,47.8775) .. controls (6.8062,47.3070) and
  (6.6458,47.1584) .. (6.4508,46.8708) .. controls (6.7016,46.2432) and
  (7.1711,45.4432) .. (7.1830,44.9975) .. controls (7.1882,44.9587) and
  (7.2031,44.9273) .. (7.2639,44.9286) .. controls (7.3554,44.9631) and
  (7.4588,45.0094) .. (7.5491,45.0665) .. controls (7.6989,45.3981) and
  (7.6989,45.3981) .. (8.1803,46.1743) .. controls (8.4644,46.3799) and
  (9.6102,46.0150) .. (9.9073,45.9223) .. controls (10.4565,45.5015) and
  (10.6966,45.3981) .. (10.8107,44.9761) .. controls (10.8226,44.9179) and
  (10.8345,44.8502) .. (10.8452,44.7812) .. controls (10.8345,44.7586) and
  (10.8226,44.7242) .. (10.8107,44.6897) .. controls (10.6288,44.1976) and
  (10.5480,43.6045) .. (10.2045,43.4773) .. controls (9.9506,43.2007) and
  (9.8117,42.9933) .. (9.8622,42.7701) .. controls (10.1367,42.5537) and
  (10.4791,42.4836) .. (10.8107,42.4277) .. controls (10.9830,42.3921) and
  (11.1554,42.3707) .. (11.3028,42.3243) .. controls (12.1464,42.1844) and
  (12.1871,42.1044) .. (12.8825,41.9238) -- (13.0881,41.9238) .. controls
  (13.4780,41.9238) and (13.8666,41.9345) .. (14.2553,41.9464) .. controls
  (14.4170,42.0046) and (14.5644,42.0842) .. (14.7248,42.1746) .. controls
  (14.8972,42.6203) and (14.3243,42.5870) .. (13.8203,42.8378) .. controls
  (13.7181,42.9187) and (13.3864,43.3192) .. (13.0881,43.4333) .. controls
  (12.9859,43.4773) and (12.8932,43.4892) .. (12.8123,43.4559) .. controls
  (12.3107,43.5475) and (12.1158,43.9005) .. (11.9672,44.5863) .. controls
  (12.0136,44.6445) and (12.0469,44.7111) .. (12.0694,44.7812) .. controls
  (12.3904,44.6101) and (12.7458,44.4948) .. (13.0881,44.3914) .. controls
  (14.6936,43.9219) and (15.1662,43.8183) .. (15.9039,43.2717) .. controls
  (16.3419,43.4114) and (16.5241,43.7216) .. (16.8073,44.2202)(13.6955,48.3233)
  .. controls (13.8440,48.4374) and (13.7496,48.5945) .. (13.5124,48.8142) ..
  controls (13.2116,49.0774) and (12.8472,49.2801) .. (12.5176,49.4430) ..
  controls (12.4248,49.3158) and (12.5057,49.2825) .. (12.4581,49.1340) ..
  controls (12.0813,49.0876) and (11.3491,49.5333) .. (11.1554,50.0825) ..
  controls (11.1781,50.1169) and (11.1952,50.1794) .. (11.2576,50.1859) ..
  controls (11.8519,50.0028) and (12.3107,49.7853) .. (12.7220,49.5571) ..
  controls (12.7909,49.7069) and (12.8349,50.4141) .. (12.4141,50.6197) ..
  controls (12.1729,50.6768) and (11.9328,50.7457) .. (11.7152,50.8372) ..
  controls (11.4514,51.0084) and (11.1197,51.1332) .. (10.8107,51.3056) ..
  controls (10.4898,51.4767) and (10.1938,51.7061) .. (10.0547,52.0936) ..
  controls (10.0465,52.1597) and (10.0693,52.2107) .. (10.1593,52.2196) ..
  controls (10.4446,52.1388) and (10.5587,52.1067) .. (10.8107,52.0033) ..
  controls (10.9605,51.9451) and (11.1554,51.8535) .. (11.4633,51.7168) ..
  controls (11.9328,51.2140) and (11.8175,51.0880) .. (12.1384,51.6241) ..
  controls (12.1729,51.7287) and (12.2073,51.8309) .. (12.2299,51.9569) ..
  controls (12.4248,52.1626) and (12.7101,52.2541) .. (12.7684,52.7343) ..
  controls (12.7527,52.8510) and (12.6808,52.9984) .. (12.5057,52.9280) ..
  controls (12.1864,52.7692) and (11.6281,52.9420) .. (11.3147,53.1230) ..
  controls (11.2231,52.6760) and (11.4062,52.4716) .. (11.2113,52.3111) ..
  controls (11.0746,52.3574) and (10.9367,52.4145) .. (10.8107,52.4823) ..
  controls (10.2164,52.7569) and (9.6209,53.1562) .. (9.0373,53.5675) ..
  controls (8.9558,53.5597) and (8.8632,53.5680) .. (8.7746,53.5449) .. controls
  (8.6471,53.4454) and (8.5519,53.3176) .. (8.4537,53.1907) .. controls
  (8.2932,52.9744) and (8.6938,52.5631) .. (8.7068,52.5512) .. controls
  (8.9220,52.3575) and (9.1407,52.1732) .. (9.3463,52.0140) .. controls
  (9.6898,51.7513) and (9.9977,51.5456) .. (9.8396,51.2841) .. controls
  (9.7430,51.2547) and (9.6392,51.2911) .. (9.5745,51.3507) .. controls
  (9.3344,51.5338) and (9.0943,51.7168) .. (8.8661,51.9118) .. controls
  (8.7520,52.0033) and (8.6486,52.0817) .. (8.5452,52.1851) .. controls
  (8.4311,52.2779) and (8.1803,52.2993) .. (8.0079,52.2993) .. controls
  (7.9160,52.2526) and (7.8853,52.1853) .. (7.8712,52.1174) .. controls
  (7.9497,51.6491) and (7.9616,50.9751) .. (8.2480,50.8147) .. controls
  (8.4311,50.8310) and (8.6260,50.8900) .. (8.8198,51.0310) .. controls
  (9.1870,50.9300) and (10.5124,50.6197) .. (10.6514,50.3570) .. controls
  (10.6218,50.3003) and (10.5811,50.2418) .. (10.5124,50.2192) .. controls
  (10.0904,50.2548) and (9.4949,49.7627) .. (9.4604,49.4311) .. controls
  (10.0386,49.1956) and (10.4964,49.0664) .. (11.0865,48.9747) .. controls
  (11.4288,48.8951) and (11.7485,48.8249) .. (12.0813,48.7691) .. controls
  (12.2299,48.6668) and (12.3678,48.5515) .. (12.5057,48.4719) .. controls
  (12.1735,48.2323) and (12.1127,47.7537) .. (12.0813,47.4093) .. controls
  (12.1071,47.1768) and (12.1065,47.1612) .. (12.2644,47.0670) .. controls
  (12.5507,47.1307) and (12.8610,47.2947) .. (13.0881,47.4545) .. controls
  (13.2700,47.5912) and (13.4316,47.7290) .. (13.5124,47.8313) .. controls
  (13.4780,47.9240) and (13.4780,47.9240) .. (13.0881,48.2318) .. controls
  (13.0548,48.2555) and (13.0192,48.2770) .. (12.9859,48.3007) .. controls
  (12.9966,48.3566) and (13.0322,48.3803) .. (13.0881,48.4030) .. controls
  (13.2604,48.4601) and (13.6040,48.3459) .. (13.6955,48.3233)}
%    \end{macrocode}
%
% ``南''字
%    \begin{macrocode}
\def\YNUlogo@name@nan{%
  (18.6199,49.7473) ..
  controls (17.6227,49.1518) and (17.8675,49.8756) .. (17.7772,50.8872) ..
  controls (17.8021,50.9763) and (18.0755,51.4957) .. (18.2182,51.6372) ..
  controls (18.3477,51.6764) and (18.5546,51.8060) .. (18.7376,51.8571) ..
  controls (18.8291,51.8832) and (18.9183,51.8963) .. (18.9836,51.8702) ..
  controls (19.1017,51.7275) and (19.1435,51.5849) .. (19.1774,51.4435) ..
  controls (19.0959,51.3356) and (19.0299,50.6676) .. (18.7911,50.2180) ..
  controls (18.7519,50.0766) and (18.6591,49.7984) ..
  (18.6199,49.7473)(23.7940,44.0241) .. controls (23.6395,44.1917) and
  (23.5099,44.3748) .. (23.3661,44.5531) .. controls (23.0036,44.7361) and
  (22.6660,44.9940) .. (22.1727,45.1628) .. controls (22.0823,45.2066) and
  (22.0574,45.1585) .. (22.0194,45.0986) .. controls (22.1244,44.5156) and
  (22.5194,44.0040) .. (22.5187,43.5452) .. controls (22.5185,43.3520) and
  (22.3632,43.2946) .. (22.1347,43.2468) .. controls (21.8174,43.2656) and
  (21.4655,44.6955) .. (21.1493,45.4623) .. controls (20.4509,46.0700) and
  (19.5955,46.4066) .. (18.7376,46.7163) .. controls (18.4904,46.8197) and
  (18.2836,46.9362) .. (18.2051,47.1038) .. controls (18.5387,47.5206) and
  (18.8630,47.7871) .. (19.2035,47.6625) .. controls (19.2659,47.5888) and
  (20.0344,47.1442) .. (20.1770,47.1965) .. controls (20.0920,47.3545) and
  (20.0249,47.5320) .. (20.0344,47.7386) .. controls (20.1889,47.7136) and
  (20.3446,47.6114) .. (20.5134,47.4557) .. controls (20.8890,47.1169) and
  (21.2408,46.5749) .. (21.3954,46.3407) .. controls (22.0574,45.7072) and
  (23.4053,45.1367) .. (24.1827,44.7100) .. controls (24.1969,44.6446) and
  (24.2100,44.5804) .. (24.2100,44.5150) -- (24.2100,44.4639) .. controls
  (24.1969,44.1798) and (23.9746,44.1002) .. (23.7940,44.0241)(23.3530,46.3550)
  .. controls (23.2246,46.6402) and (21.6675,47.2726) .. (20.5134,47.7920) ..
  controls (19.9690,48.0380) and (19.5149,48.2579) .. (19.3331,48.3994) ..
  controls (19.1393,48.4255) and (19.0169,48.4397) .. (18.8362,48.4921) --
  (18.7233,48.5170) .. controls (18.5345,48.6727) and (18.4642,48.7488) ..
  (18.3097,49.0602) .. controls (18.4131,49.1386) and (18.5688,49.1636) ..
  (18.7376,49.1636) .. controls (19.0098,49.1636) and (19.3081,49.0995) ..
  (19.5149,49.0210) .. controls (19.5542,49.0483) and (19.6065,49.0602) ..
  (19.6576,49.0864) .. controls (19.5550,49.2018) and (19.5512,49.3550) ..
  (19.5149,49.5143) .. controls (19.8656,49.6688) and (19.8525,49.6438) ..
  (20.1770,50.0705) .. controls (20.0605,50.3166) and (19.6837,50.3546) ..
  (19.5292,50.6922) .. controls (19.7099,50.8479) and (20.0855,50.8871) ..
  (20.1889,51.3531) .. controls (20.1131,51.4208) and (20.0829,51.5088) ..
  (20.1116,51.6371) .. controls (20.2402,51.6801) and (20.3507,51.7409) ..
  (20.5134,51.7275) .. controls (20.6816,51.7248) and (20.7606,51.7929) ..
  (20.8890,51.8321) .. controls (20.9933,51.8025) and (21.0704,51.7486) ..
  (21.1243,51.7156) .. controls (21.1885,51.5194) and (21.2658,51.3269) ..
  (21.3430,51.1581) .. controls (21.2099,51.0760) and (21.2788,50.8198) ..
  (21.2788,50.6530) .. controls (21.4041,50.4867) and (21.4622,50.3118) ..
  (21.5522,50.1347) .. controls (21.4274,50.0041) and (21.2848,49.8993) ..
  (21.1243,49.8507) .. controls (21.1993,49.6378) and (21.1004,49.4888) ..
  (21.1362,49.3847) .. controls (21.0447,49.3324) and (20.9532,49.2670) ..
  (20.8640,49.2290) .. controls (21.0055,49.1256) and (21.6034,48.8534) ..
  (21.8114,48.9449) .. controls (22.0051,48.5170) and (21.7448,48.3340) ..
  (21.6414,48.2436) .. controls (21.8886,47.6874) and (22.2904,47.6743) ..
  (22.7432,47.4164) .. controls (22.7955,47.4295) and (22.8348,47.4556) ..
  (22.8989,47.4936) .. controls (22.9512,47.8562) and (22.8466,48.7762) ..
  (22.7825,49.2421) .. controls (22.6921,49.4240) and (22.5887,49.6046) ..
  (22.5115,49.7984) .. controls (21.9148,50.4331) and (21.2824,49.9850) ..
  (22.2678,51.0333) .. controls (22.2683,51.1032) and (22.2819,51.1105) ..
  (22.2987,51.2164) .. controls (22.3890,51.3067) and (22.4592,51.3388) ..
  (22.6018,51.3388) .. controls (22.7694,51.0417) and (22.9643,50.7303) ..
  (23.1593,50.4200) .. controls (23.3138,50.0064) and (24.0531,47.8051) ..
  (24.0008,47.6743) .. controls (24.0531,47.4295) and (24.1185,47.1965) ..
  (24.1827,46.9766) .. controls (23.9509,46.3668) and (23.8201,46.3157) ..
  (23.3530,46.3550)(20.5134,49.2290) .. controls (20.4754,49.3705) and
  (20.4100,49.5012) .. (20.2804,49.4359) .. controls (20.2412,49.0210) and
  (20.2543,49.0733) .. (20.3826,48.8796) .. controls (20.4621,48.8571) and
  (20.5172,48.8993) .. (20.5645,48.9450) .. controls (20.5645,48.9687) and
  (20.5538,49.0995) .. (20.5134,49.2290)}
%    \end{macrocode}
%
% ``大''字
%    \begin{macrocode}
\def\YNUlogo@name@da{%
  (31.7126,50.4450) ..
  controls (31.6603,50.4201) and (31.6198,50.4057) .. (31.5818,50.3808) ..
  controls (31.3488,50.2643) and (31.0885,50.1098) .. (30.8556,49.9398) ..
  controls (30.7260,49.8376) and (30.5953,49.7342) .. (30.4669,49.6177) ..
  controls (30.1032,49.2932) and (29.7929,48.9307) .. (29.5980,48.5813) ..
  controls (29.7252,48.5028) and (29.8690,48.4243) .. (30.0259,48.3471) ..
  controls (30.0848,48.3419) and (30.1795,48.3213) .. (30.2880,48.2857) ..
  controls (30.4092,48.2271) and (30.3623,48.2568) .. (30.4669,48.2056) ..
  controls (30.5953,48.1534) and (30.7260,48.0891) .. (30.8556,48.0357) ..
  controls (30.9061,48.0036) and (30.9328,47.9893) .. (30.9602,47.9620) ..
  controls (31.1420,47.8324) and (31.3447,47.7041) .. (31.4255,47.5900) ..
  controls (31.4682,47.5580) and (31.3081,47.4430) .. (31.2847,47.4033) ..
  controls (31.2038,47.3130) and (31.1278,47.2191) .. (31.0755,47.1312) ..
  controls (31.0101,47.0266) and (30.9459,46.9374) .. (30.8948,46.8459) ..
  controls (30.8829,46.8459) and (30.8348,46.8596) .. (30.8217,46.8596) ..
  controls (30.7387,46.8682) and (30.7470,46.8944) .. (30.6856,46.9487) ..
  controls (30.6714,46.9701) and (30.6432,47.0126) .. (30.6476,47.0409) ..
  controls (30.6084,47.1181) and (30.5430,47.1954) .. (30.4669,47.2845) ..
  controls (30.1947,47.5710) and (29.7668,47.8289) .. (29.5327,47.8289) ..
  controls (29.5327,47.0135) and (30.2851,45.7060) .. (30.0129,45.0975) ..
  controls (29.6634,44.8110) and (29.5458,44.5543) .. (29.3389,44.2559) ..
  controls (29.2803,44.2482) and (29.2395,44.2427) .. (29.2213,44.2821) ..
  controls (28.9099,45.4731) and (28.9895,46.6914) .. (28.6888,47.9466) ..
  controls (28.2240,48.5813) and (27.3147,48.5029) .. (26.6539,48.5813) ..
  controls (26.4981,48.6062) and (26.3555,48.6325) .. (26.2259,48.6847) ..
  controls (26.4209,49.0068) and (26.5374,49.2279) .. (26.6539,49.3587) ..
  controls (26.8987,49.6047) and (27.1590,49.5132) .. (27.9376,49.2029) ..
  controls (27.9507,49.2552) and (27.9756,49.2933) .. (28.0160,49.3325) ..
  controls (27.7557,49.6701) and (27.4063,49.9542) .. (27.1067,50.1871) ..
  controls (26.9914,50.2371) and (26.8226,50.3036) .. (26.6539,50.3809) ..
  controls (26.3817,50.5104) and (26.1095,50.6661) .. (26.1095,50.8206) ..
  controls (26.2141,50.8611) and (26.2141,50.8611) .. (26.3947,50.8350) ..
  controls (26.4732,50.7957) and (26.5623,50.7696) .. (26.6539,50.7304) ..
  controls (27.0556,50.6008) and (27.5227,50.4724) .. (27.9887,50.2644) ..
  controls (28.3314,49.9211) and (28.6250,49.2031) .. (29.0786,49.0069) ..
  controls (29.5196,49.2553) and (30.0378,50.0957) .. (30.4669,50.7042) ..
  controls (30.5834,50.8611) and (30.6880,51.0026) .. (30.7784,51.1190) ..
  controls (30.8045,51.1583) and (30.8295,51.1832) .. (30.8556,51.2225) ..
  controls (30.9067,51.2878) and (30.9721,51.3389) .. (31.1540,51.4043) ..
  controls (31.2966,51.3520) and (31.4392,51.3009) .. (31.5819,51.2486) ..
  controls (31.7983,51.1731) and (31.8552,51.1321) .. (31.9967,51.0798) ..
  controls (32.2178,50.9122) and (32.3866,50.8076) .. (32.4507,50.4332) ..
  controls (32.2939,50.3934) and (32.1336,50.3903) .. (31.7126,50.4451)}
%    \end{macrocode}
%
% ``学''字
%    \begin{macrocode}
\def\YNUlogo@name@xue{%
  (41.2964,44.5150) ..
  controls (41.2571,44.5923) and (41.2072,44.6838) .. (41.1668,44.7872) ..
  controls (41.0242,45.0855) and (40.8946,45.4730) .. (40.9600,45.6037) ..
  controls (41.0242,45.6037) and (41.1015,45.5384) .. (41.1668,45.4468) ..
  controls (41.3618,45.1889) and (41.4913,44.6719) ..
  (41.2964,44.5150)(39.2603,45.3957) .. controls (39.1961,45.1628) and
  (39.0392,45.1509) .. (38.9227,45.1628) .. controls (38.8835,45.1889) and
  (38.8597,45.2138) .. (38.8324,45.2281) .. controls (38.6897,45.3316) and
  (38.6125,45.3696) .. (38.3914,45.5895) .. controls (38.4175,45.6549) and
  (38.4306,45.7072) .. (38.4437,45.7702) .. controls (38.6648,45.8997) and
  (38.6767,45.9140) .. (38.8324,45.9401) .. controls (38.8324,45.9401) and
  (38.8466,45.9401) .. (38.8597,45.9532) .. controls (38.9869,45.7702) and
  (39.1176,45.5765) .. (39.2603,45.3958)(38.9108,47.0147) .. controls
  (38.8835,47.0147) and (38.8597,46.9885) .. (38.8324,46.9766) --
  (38.8205,46.9766) .. controls (38.7289,47.0658) and (38.6255,47.1561) ..
  (38.5602,47.2477) .. controls (38.6386,47.2215) and (38.7171,47.2072) ..
  (38.8205,47.1835) -- (38.8324,47.1704) .. controls (38.8466,47.1181) and
  (38.8716,47.0658) .. (38.9108,47.0146)(38.5851,46.5618) .. controls
  (38.5091,46.4203) and (38.5091,46.4203) .. (38.3783,46.3157) .. controls
  (38.3783,46.3015) and (38.3652,46.3015) .. (38.3534,46.2896) .. controls
  (38.2500,46.4203) and (38.1073,46.6260) .. (38.2630,46.7437) .. controls
  (38.2880,46.7305) and (38.3403,46.7163) .. (38.3783,46.6902) .. controls
  (38.4176,46.6783) and (38.4699,46.6640) .. (38.5091,46.6509) .. controls
  (38.5222,46.6260) and (38.5471,46.5998) .. (38.5851,46.5618)(41.1668,47.4818)
  .. controls (41.2453,47.2726) and (41.3368,47.0539) .. (41.4390,46.8601) ..
  controls (41.4417,46.7444) and (41.3566,46.7712) .. (41.3106,46.7686) ..
  controls (41.2572,46.8066) and (41.2072,46.8470) .. (41.1668,46.8720) ..
  controls (40.9600,47.0420) and (40.8542,47.1442) .. (40.7651,47.2999) ..
  controls (40.5309,47.3248) and (40.5832,47.6220) .. (40.5713,47.7278) ..
  controls (40.7270,47.8562) and (40.9196,48.0630) .. (40.9850,48.3483) ..
  controls (40.6105,48.7893) and (40.1933,49.0995) .. (40.0519,49.5785) ..
  controls (40.2837,49.7722) and (40.7389,49.4870) .. (41.1668,49.3467) ..
  controls (41.1811,49.3467) and (41.1811,49.3325) .. (41.1930,49.3325) ..
  controls (41.8550,49.0080) and (41.8550,49.0080) .. (41.9715,48.9961) ..
  controls (42.0880,49.0864) and (42.4125,49.6308) .. (42.5028,49.8638) ..
  controls (42.4458,50.0918) and (42.3094,50.0649) .. (42.2437,50.0956) ..
  controls (41.8134,50.1740) and (41.4509,50.2513) .. (41.1668,50.3285) ..
  controls (38.6767,51.0667) and (41.0753,52.2066) .. (39.8831,53.3464) ..
  controls (39.5990,53.2953) and (39.2210,53.2311) .. (38.8324,53.1527) ..
  controls (38.6767,53.1266) and (38.5340,53.0885) .. (38.3783,53.0612) ..
  controls (38.0039,52.9708) and (37.6521,52.8674) .. (37.4191,52.7498) ..
  controls (37.4845,52.6986) and (37.5430,52.7171) .. (37.6259,52.6214) ..
  controls (37.8993,52.5192) and (38.1465,52.5049) .. (38.3783,52.4799) ..
  controls (38.5471,52.4538) and (38.6897,52.4277) .. (38.8324,52.3492) ..
  controls (38.9227,52.2981) and (39.0285,52.2196) .. (39.1046,52.1031) ..
  controls (38.9869,52.0140) and (39.0796,51.3531) .. (39.0523,51.1190) ..
  controls (39.0599,51.0438) and (39.0255,51.0124) .. (38.9488,51.0286) ..
  controls (38.9108,51.0418) and (38.8716,51.0548) .. (38.8324,51.0667) ..
  controls (38.6386,51.1059) and (38.5091,51.1843) .. (38.3783,51.2616) ..
  controls (38.3141,51.3128) and (38.2499,51.3531) .. (38.1858,51.4054) ..
  controls (37.8947,51.6193) and (37.8238,51.5336) .. (37.6863,51.4567) ..
  controls (37.3891,51.3140) and (37.2123,51.2366) .. (36.9270,51.1059) ..
  controls (36.8628,51.0666) and (36.8105,51.0155) .. (36.7725,50.9632) ..
  controls (37.0946,50.5627) and (37.7947,50.4593) .. (38.3783,50.3166) ..
  controls (38.5471,50.2893) and (38.6897,50.2513) .. (38.8324,50.2144) ..
  controls (38.8466,50.2002) and (38.8597,50.2002) .. (38.8716,50.2002) ..
  controls (39.0665,49.9541) and (39.4813,49.4240) .. (39.2353,49.0603) ..
  controls (39.1557,49.1637) and (38.9762,49.2814) .. (38.8324,49.3586) ..
  controls (38.7028,49.4359) and (38.5744,49.4870) .. (38.5340,49.5013) ..
  controls (38.4817,49.4751) and (38.4306,49.4501) .. (38.3783,49.4240) ..
  controls (38.0657,49.2671) and (37.7816,49.0472) .. (37.6521,48.8273) ..
  controls (37.8589,48.7762) and (38.1192,48.7382) .. (38.3783,48.6847) ..
  controls (38.5340,48.6454) and (38.6766,48.6193) .. (38.8324,48.5813) ..
  controls (39.5194,48.3875) and (40.1933,48.0630) .. (40.4144,47.2857) ..
  controls (40.3991,47.2472) and (40.3872,47.1874) .. (40.2991,47.2215) ..
  controls (39.7666,47.5317) and (39.2876,47.7278) .. (38.8324,47.8943) ..
  controls (38.7551,47.9216) and (38.6766,47.9477) .. (38.6125,47.9739) ..
  controls (38.3719,47.9799) and (38.3380,47.9845) .. (38.1847,48.0168) ..
  controls (38.0742,48.0512) and (37.7816,48.0773) .. (37.7697,48.0892) ..
  controls (37.6227,48.1074) and (37.5876,48.0299) .. (37.5368,47.9596) ..
  controls (37.5879,47.8943) and (37.8589,47.5971) .. (37.8731,47.4295) ..
  controls (37.5094,46.9766) and (37.6925,46.4441) .. (37.8078,45.9259) ..
  controls (37.7555,45.8879) and (37.7305,45.5253) .. (37.5487,45.0855) ..
  controls (37.1477,44.4206) and (37.2181,43.8441) .. (36.9520,43.1683) ..
  controls (36.9592,43.1233) and (36.9726,43.0713) .. (37.0554,43.0792) ..
  controls (37.3537,43.2337) and (37.6663,43.4025) .. (37.9766,43.5701) ..
  controls (38.1858,43.8553) and (38.2369,44.0241) .. (38.3783,44.1394) ..
  controls (38.4817,44.2178) and (38.5994,44.2832) .. (38.8324,44.3343) ..
  controls (38.8597,44.3462) and (38.8716,44.3462) .. (38.8977,44.3605) ..
  controls (39.2284,44.0070) and (39.3209,43.5467) .. (39.3518,43.2194) ..
  controls (39.4172,42.8450) and (39.2995,42.2352) .. (39.6240,41.9654) ..
  controls (39.9223,42.1972) and (40.2325,42.6120) .. (40.4798,43.0399) ..
  controls (40.4405,43.1814) and (40.4013,43.2979) .. (40.3645,43.4274) ..
  controls (40.1565,43.7376) and (39.6893,44.2690) .. (39.7785,44.5281) ..
  controls (39.9865,44.6969) and (40.0519,44.8003) .. (40.0519,44.9310) ..
  controls (40.0126,45.0855) and (39.9615,45.2543) .. (39.9354,45.4089) --
  (39.9354,45.4219) .. controls (39.9734,45.5004) and (40.0257,45.5646) ..
  (40.0768,45.6288) .. controls (39.8058,45.9913) and (39.6240,46.0697) ..
  (39.9734,46.3550) .. controls (40.1422,46.3015) and (40.2991,46.0828) ..
  (40.3752,45.7964) .. controls (40.3371,45.7583) and (40.2991,45.6942) ..
  (40.2718,45.6181) .. controls (40.2076,45.3958) and (40.3371,45.1890) ..
  (40.1814,44.9691) .. controls (40.1933,44.8265) and (40.2325,44.6969) ..
  (40.2836,44.6184) .. controls (40.4405,44.5923) and (40.5713,44.5923) ..
  (40.6343,44.4770) .. controls (40.5831,44.3748) and (40.5582,44.2833) ..
  (40.5309,44.1798) .. controls (40.5963,44.0871) and (40.9077,44.0241) ..
  (41.1668,43.9706) .. controls (41.2072,43.9706) and (41.2453,43.9587) ..
  (41.2845,43.9457) .. controls (41.4651,43.7900) and (41.6482,43.6486) ..
  (41.8277,43.4929) .. controls (42.0095,43.4025) and (42.2294,43.3360) ..
  (42.4897,43.1291) .. controls (42.7524,43.1485) and (42.8748,43.3106) ..
  (42.9568,43.5309) .. controls (42.6454,43.9457) and (42.4255,44.5531) ..
  (42.1914,44.8919) .. controls (42.2045,44.9941) and (42.2045,44.9941) ..
  (41.9976,45.3828) .. controls (42.1533,45.4874) and (42.1533,45.4874) ..
  (42.2698,45.4874) .. controls (42.6312,45.3828) and (42.9307,45.3435) ..
  (43.2433,45.8226) .. controls (43.3234,45.9329) and (43.3388,45.9403) ..
  (43.2540,46.0294) .. controls (42.8653,46.4442) and (42.8653,46.4442) ..
  (42.3744,46.8602) .. controls (42.2437,46.9767) and (42.1403,47.0801) ..
  (42.0499,47.1966) .. controls (41.8277,47.4676) and (41.4271,47.7671) ..
  (41.1668,47.8563) .. controls (41.0907,47.8682) and (41.0372,47.8824) ..
  (40.9980,47.8682) .. controls (41.0503,47.7672) and (41.1014,47.6221) ..
  (41.1668,47.4819)(36.6536,48.3995) .. controls (36.5451,48.3987) and
  (36.4928,48.3313) .. (36.4706,48.2319) .. controls (36.4803,47.9478) and
  (36.4886,47.8361) .. (36.5240,47.5972) .. controls (36.4589,47.4895) and
  (36.4534,47.5088) .. (36.3291,47.5460) .. controls (35.2284,48.6194) and
  (34.6615,48.2925) .. (35.5577,49.8983) .. controls (35.5558,50.1167) and
  (35.6053,50.1834) .. (35.7467,50.2775) .. controls (35.8917,50.2801) and
  (35.8929,50.2359) .. (35.9808,50.1741) .. controls (36.1223,50.0065) and
  (36.3814,49.7723) .. (36.5763,49.4359) .. controls (36.7071,49.0603) and
  (36.9139,48.6728) .. (37.1219,48.3614) .. controls (37.0800,48.2746) and
  (36.9487,48.3368) .. (36.8057,48.3745)(36.2637,45.2021) .. controls
  (36.2911,45.1760) and (36.3160,45.0333) .. (36.5121,45.0072) .. controls
  (37.0417,45.6795) and (37.4724,46.8637) .. (37.1861,47.6114) .. controls
  (36.9155,47.4674) and (36.6728,47.3008) .. (36.4706,47.0801) .. controls
  (36.5894,46.2635) and (36.5514,46.0294) .. (36.2638,45.2021)}
%    \end{macrocode}
%
% 第二版``云南大学''校名
%    \begin{macrocode}
\def\YNUlogo@nameTwo{%
  \path[fill] (990.0000,1611.7500) .. controls (975.7500,1607.2500) and
  (958.5000,1602.0000) .. (952.5000,1599.7500) .. controls (946.5000,1597.5000)
  and (939.0000,1595.2500) .. (936.0000,1596.0000) .. controls
  (933.0000,1596.7500) and (915.0000,1593.7500) .. (894.7500,1589.2500) ..
  controls (875.2500,1585.5000) and (835.5000,1577.2500) .. (806.2500,1571.2500)
  .. controls (708.7500,1551.7500) and (690.7500,1547.2500) ..
  (672.0000,1534.5000) .. controls (661.5000,1527.7500) and (646.5000,1522.5000)
  .. (639.0000,1522.5000) .. controls (630.7500,1522.5000) and
  (603.0000,1506.0000) .. (576.7500,1485.0000) .. controls (550.5000,1464.7500)
  and (525.7500,1447.5000) .. (522.7500,1447.5000) .. controls
  (504.0000,1447.5000) and (472.5000,1391.2500) .. (472.5000,1358.2500) ..
  controls (472.5000,1332.7500) and (500.2500,1306.5000) .. (534.0000,1299.7500)
  .. controls (562.5000,1294.5000) and (591.7500,1263.7500) ..
  (587.2500,1245.0000) .. controls (585.0000,1236.0000) and (587.2500,1230.0000)
  .. (591.7500,1230.0000) .. controls (597.7500,1230.0000) and
  (599.2500,1221.7500) .. (597.0000,1206.0000) .. controls (594.7500,1192.5000)
  and (591.0000,1161.0000) .. (588.7500,1137.0000) .. controls
  (584.2500,1090.5000) and (581.2500,1080.0000) .. (570.0000,1080.0000) ..
  controls (566.2500,1080.0000) and (544.5000,1068.0000) .. (522.0000,1053.7500)
  .. controls (499.5000,1039.5000) and (478.5000,1027.5000) ..
  (475.5000,1027.5000) .. controls (472.5000,1027.5000) and (444.7500,1010.2500)
  .. (414.0000,989.2500) .. controls (366.0000,957.0000) and (354.0000,951.7500)
  .. (327.0000,954.0000) -- (296.2500,956.2500) -- (291.7500,997.5000) ..
  controls (283.5000,1065.7500) and (276.0000,1081.5000) .. (239.2500,1101.7500)
  .. controls (221.2500,1111.5000) and (196.5000,1121.2500) ..
  (183.7500,1122.0000) .. controls (150.7500,1125.0000) and (87.7500,1109.2500)
  .. (78.0000,1096.5000) .. controls (73.5000,1089.7500) and (65.2500,1060.5000)
  .. (60.0000,1032.0000) .. controls (54.7500,1002.7500) and (46.5000,970.5000)
  .. (42.0000,960.0000) .. controls (36.7500,949.5000) and (33.0000,929.2500) ..
  (33.7500,915.0000) .. controls (34.5000,900.7500) and (30.7500,883.5000) ..
  (25.5000,877.5000) .. controls (13.5000,863.2500) and (3.7500,774.7500) ..
  (10.5000,739.5000) .. controls (13.5000,723.0000) and (20.2500,712.5000) ..
  (26.2500,712.5000) .. controls (32.2500,712.5000) and (37.5000,709.5000) ..
  (37.5000,706.5000) .. controls (37.5000,699.7500) and (79.5000,685.5000) ..
  (116.2500,679.5000) .. controls (129.0000,678.0000) and (149.2500,681.0000) ..
  (162.0000,687.0000) .. controls (191.2500,701.2500) and (247.5000,761.2500) ..
  (247.5000,778.5000) .. controls (247.5000,788.2500) and (268.5000,838.5000) ..
  (283.5000,861.7500) .. controls (285.7500,867.0000) and (330.0000,823.5000) ..
  (330.0000,815.2500) .. controls (330.0000,801.0000) and (352.5000,787.5000) ..
  (378.0000,787.5000) .. controls (409.5000,787.5000) and (442.5000,798.7500) ..
  (442.5000,810.7500) .. controls (442.5000,827.2500) and (484.5000,860.2500) ..
  (512.2500,865.5000) .. controls (529.5000,868.5000) and (548.2500,879.7500) ..
  (560.2500,893.2500) .. controls (584.2500,919.5000) and (605.2500,921.7500) ..
  (611.2500,898.5000) .. controls (616.5000,876.7500) and (612.7500,824.2500) ..
  (605.2500,812.2500) .. controls (600.0000,804.7500) and (601.5000,792.0000) ..
  (612.0000,720.0000) .. controls (615.7500,693.7500) and (616.5000,693.7500) ..
  (656.2500,691.5000) .. controls (687.7500,690.0000) and (702.0000,693.0000) ..
  (721.5000,705.7500) .. controls (753.7500,726.7500) and (785.2500,792.7500) ..
  (790.5000,851.2500) .. controls (792.0000,867.7500) and (799.5000,896.2500) ..
  (808.5000,915.0000) .. controls (816.7500,933.7500) and (825.7500,956.2500) ..
  (828.7500,965.2500) .. controls (831.7500,977.2500) and (841.5000,983.2500) ..
  (859.5000,987.0000) .. controls (888.7500,992.2500) and (897.0000,988.5000) ..
  (888.0000,973.5000) .. controls (872.2500,950.2500) and (864.7500,915.7500) ..
  (872.2500,908.2500) .. controls (882.7500,897.7500) and (941.2500,897.7500) ..
  (958.5000,907.5000) .. controls (965.2500,911.2500) and (980.2500,918.0000) ..
  (992.2500,922.5000) .. controls (1019.2500,932.2500) and (1020.0000,960.7500)
  .. (993.0000,981.7500) .. controls (970.5000,999.7500) and
  (973.5000,1007.2500) .. (1008.7500,1024.5000) .. controls
  (1023.0000,1031.2500) and (1035.0000,1039.5000) .. (1035.0000,1043.2500) ..
  controls (1035.0000,1047.0000) and (1043.2500,1050.0000) ..
  (1052.2500,1050.0000) .. controls (1062.0000,1050.0000) and
  (1089.0000,1063.5000) .. (1113.0000,1080.0000) .. controls
  (1136.2500,1096.5000) and (1162.5000,1110.0000) .. (1170.7500,1110.0000) ..
  controls (1179.0000,1110.0000) and (1196.2500,1116.0000) ..
  (1209.7500,1122.7500) .. controls (1223.2500,1129.5000) and
  (1239.0000,1136.2500) .. (1245.0000,1137.0000) .. controls
  (1251.0000,1138.5000) and (1261.5000,1146.0000) .. (1269.0000,1154.2500) ..
  controls (1275.7500,1163.2500) and (1284.0000,1170.0000) ..
  (1287.7500,1170.0000) .. controls (1291.5000,1170.0000) and
  (1310.2500,1183.5000) .. (1330.5000,1200.0000) .. controls
  (1350.0000,1216.5000) and (1369.5000,1230.0000) .. (1372.5000,1230.0000) ..
  controls (1376.2500,1230.0000) and (1404.7500,1254.0000) ..
  (1436.2500,1284.0000) .. controls (1491.0000,1335.0000) and
  (1494.0000,1339.5000) .. (1489.5000,1364.2500) .. controls
  (1485.0000,1395.0000) and (1437.0000,1447.5000) .. (1413.7500,1447.5000) ..
  controls (1405.5000,1447.5000) and (1390.5000,1440.7500) ..
  (1380.0000,1432.5000) .. controls (1369.5000,1424.2500) and
  (1356.7500,1417.5000) .. (1350.7500,1417.5000) .. controls
  (1341.7500,1417.5000) and (1317.7500,1406.2500) .. (1227.7500,1360.5000) ..
  controls (1208.2500,1350.7500) and (1187.2500,1342.5000) ..
  (1180.5000,1342.5000) .. controls (1173.7500,1342.5000) and
  (1152.7500,1334.2500) .. (1133.2500,1324.5000) .. controls
  (1114.5000,1314.7500) and (1089.7500,1304.2500) .. (1078.5000,1302.0000) ..
  controls (1026.7500,1290.7500) and (1014.7500,1287.0000) ..
  (997.5000,1275.0000) .. controls (987.0000,1268.2500) and (966.7500,1258.5000)
  .. (951.7500,1253.2500) .. controls (936.7500,1248.7500) and
  (908.2500,1234.5000) .. (888.7500,1221.7500) .. controls (855.7500,1200.7500)
  and (852.0000,1200.0000) .. (845.2500,1212.0000) .. controls
  (839.2500,1223.2500) and (837.0000,1258.5000) .. (839.2500,1310.2500) ..
  controls (840.7500,1341.0000) and (873.0000,1369.5000) .. (920.2500,1379.2500)
  .. controls (978.0000,1392.0000) and (1002.7500,1401.7500) ..
  (1026.7500,1420.5000) .. controls (1037.2500,1429.5000) and
  (1053.0000,1440.0000) .. (1061.2500,1444.5000) .. controls
  (1077.0000,1453.5000) and (1086.7500,1485.0000) .. (1073.2500,1485.0000) ..
  controls (1054.5000,1485.0000) and (1067.2500,1508.2500) ..
  (1102.5000,1539.7500) .. controls (1123.5000,1558.5000) and
  (1140.0000,1578.7500) .. (1140.0000,1584.7500) .. controls
  (1140.0000,1615.5000) and (1058.2500,1629.7500) .. (990.0000,1611.7500) --
  cycle(1098.0000,1167.0000) .. controls (1093.5000,1155.0000) and
  (1080.7500,1149.0000) .. (1044.7500,1140.0000) .. controls
  (1014.0000,1132.5000) and (1014.0000,1139.2500) .. (1044.7500,1160.2500) ..
  controls (1073.2500,1179.0000) and (1104.0000,1182.7500) ..
  (1098.0000,1167.0000) -- cycle    
  (5883.0000,1488.7500) .. controls (5875.5000,1482.7500) and
  (5871.7500,1477.5000) .. (5874.7500,1477.5000) .. controls
  (5878.5000,1477.5000) and (5874.0000,1466.2500) .. (5865.7500,1452.7500) ..
  controls (5857.5000,1438.5000) and (5852.2500,1425.0000) ..
  (5855.2500,1422.7500) .. controls (5857.5000,1419.7500) and
  (5854.5000,1411.5000) .. (5848.5000,1404.7500) .. controls
  (5841.7500,1397.2500) and (5829.0000,1374.7500) .. (5820.0000,1355.2500) ..
  controls (5799.7500,1312.5000) and (5782.5000,1304.2500) ..
  (5726.2500,1308.7500) .. controls (5703.7500,1310.2500) and
  (5683.5000,1308.7500) .. (5681.2500,1305.0000) .. controls
  (5676.0000,1296.0000) and (5693.2500,1267.5000) .. (5703.7500,1267.5000) ..
  controls (5720.2500,1267.5000) and (5736.0000,1248.0000) ..
  (5740.5000,1221.0000) .. controls (5745.0000,1195.5000) and
  (5744.2500,1193.2500) .. (5721.7500,1188.7500) .. controls
  (5692.5000,1182.0000) and (5660.2500,1208.2500) .. (5667.0000,1233.0000) ..
  controls (5669.2500,1242.7500) and (5665.5000,1254.7500) ..
  (5657.2500,1263.7500) .. controls (5649.7500,1272.0000) and
  (5642.2500,1289.2500) .. (5641.5000,1301.2500) .. controls
  (5640.0000,1314.0000) and (5634.0000,1329.0000) .. (5628.0000,1335.7500) ..
  controls (5622.0000,1342.5000) and (5612.2500,1363.5000) ..
  (5605.5000,1382.2500) .. controls (5598.7500,1401.7500) and
  (5590.5000,1419.0000) .. (5586.7500,1422.0000) .. controls
  (5583.0000,1424.2500) and (5580.0000,1431.7500) .. (5580.0000,1439.2500) ..
  controls (5580.0000,1446.7500) and (5573.2500,1461.7500) ..
  (5564.2500,1473.0000) .. controls (5552.2500,1488.7500) and
  (5546.2500,1491.0000) .. (5535.0000,1485.0000) .. controls
  (5513.2500,1473.0000) and (5505.7500,1454.2500) .. (5514.0000,1432.5000) ..
  controls (5518.5000,1422.0000) and (5522.2500,1397.2500) ..
  (5523.7500,1377.0000) .. controls (5524.5000,1357.5000) and
  (5529.0000,1338.7500) .. (5532.7500,1335.7500) .. controls
  (5544.0000,1329.7500) and (5553.7500,1222.5000) .. (5553.7500,1110.0000) ..
  controls (5553.7500,1058.2500) and (5556.7500,1011.7500) ..
  (5559.7500,1007.2500) .. controls (5568.0000,994.5000) and
  (5591.2500,995.2500) .. (5604.0000,1007.2500) .. controls
  (5623.5000,1026.7500) and (5643.0000,1033.5000) .. (5659.5000,1027.5000) ..
  controls (5683.5000,1018.5000) and (5703.7500,1041.7500) ..
  (5696.2500,1070.2500) .. controls (5694.0000,1081.5000) and
  (5689.5000,1104.0000) .. (5687.2500,1119.7500) .. controls
  (5683.5000,1146.0000) and (5684.2500,1147.5000) .. (5705.2500,1147.5000) ..
  controls (5727.0000,1147.5000) and (5787.0000,1113.7500) ..
  (5793.0000,1098.0000) .. controls (5794.5000,1093.5000) and
  (5781.0000,1072.5000) .. (5763.0000,1051.5000) .. controls
  (5742.0000,1027.5000) and (5730.0000,1006.5000) .. (5730.0000,994.5000) ..
  controls (5730.0000,981.7500) and (5724.7500,972.7500) .. (5717.2500,970.5000)
  .. controls (5709.7500,968.2500) and (5697.0000,963.7500) ..
  (5688.7500,960.0000) .. controls (5675.2500,954.0000) and (5637.0000,945.0000)
  .. (5585.2500,933.7500) .. controls (5559.7500,928.5000) and
  (5527.5000,896.2500) .. (5527.5000,876.0000) .. controls (5527.5000,848.2500)
  and (5598.7500,840.7500) .. (5643.7500,864.7500) .. controls
  (5652.0000,869.2500) and (5665.5000,873.7500) .. (5673.7500,875.2500) ..
  controls (5682.0000,876.0000) and (5721.0000,885.7500) .. (5760.0000,896.2500)
  .. controls (5799.0000,906.7500) and (5840.2500,915.0000) ..
  (5851.5000,915.0000) .. controls (5862.7500,915.0000) and (5874.0000,918.7500)
  .. (5876.2500,922.5000) .. controls (5878.5000,927.0000) and
  (5897.2500,930.0000) .. (5916.7500,930.0000) .. controls (5937.0000,930.0000)
  and (5971.5000,933.7500) .. (5993.2500,938.2500) .. controls
  (6052.5000,950.2500) and (6055.5000,950.2500) .. (6058.5000,936.7500) ..
  controls (6062.2500,918.7500) and (5992.5000,870.0000) .. (5963.2500,870.0000)
  .. controls (5949.7500,870.0000) and (5926.5000,863.2500) ..
  (5910.0000,855.0000) .. controls (5893.5000,846.7500) and (5872.5000,840.0000)
  .. (5862.7500,840.0000) .. controls (5853.0000,840.0000) and
  (5838.7500,834.7500) .. (5830.5000,828.7500) .. controls (5823.0000,822.7500)
  and (5809.5000,817.5000) .. (5801.2500,817.5000) .. controls
  (5793.0000,817.5000) and (5776.5000,812.2500) .. (5764.5000,806.2500) ..
  controls (5753.2500,800.2500) and (5735.2500,795.0000) .. (5725.5000,795.0000)
  .. controls (5715.7500,795.0000) and (5701.5000,792.0000) ..
  (5694.0000,788.2500) .. controls (5665.5000,774.0000) and (5627.2500,763.5000)
  .. (5602.5000,762.0000) .. controls (5566.5000,761.2500) and
  (5568.7500,747.0000) .. (5611.5000,710.2500) .. controls (5665.5000,665.2500)
  and (5694.7500,663.0000) .. (5772.0000,698.2500) .. controls
  (5809.5000,715.5000) and (5826.7500,716.2500) .. (5832.7500,699.7500) ..
  controls (5838.7500,684.0000) and (5810.2500,660.0000) .. (5785.5000,660.0000)
  .. controls (5766.0000,660.0000) and (5749.5000,633.0000) ..
  (5751.0000,602.2500) .. controls (5751.7500,593.2500) and (5749.5000,584.2500)
  .. (5746.5000,582.0000) .. controls (5740.5000,578.2500) and
  (5700.0000,574.5000) .. (5572.5000,565.5000) .. controls (5541.7500,564.0000)
  and (5496.0000,556.5000) .. (5471.2500,550.5000) .. controls
  (5445.7500,544.5000) and (5414.2500,541.5000) .. (5399.2500,543.7500) ..
  controls (5364.7500,549.7500) and (5355.0000,537.0000) .. (5379.0000,516.7500)
  .. controls (5411.2500,489.0000) and (5535.0000,433.5000) ..
  (5553.0000,438.7500) .. controls (5561.2500,441.7500) and (5589.0000,447.0000)
  .. (5613.7500,450.0000) .. controls (5638.5000,453.7500) and
  (5675.2500,460.5000) .. (5694.7500,465.0000) .. controls (5719.5000,471.0000)
  and (5733.7500,471.7500) .. (5739.0000,466.5000) .. controls
  (5748.0000,457.5000) and (5737.5000,419.2500) .. (5709.0000,362.2500) ..
  controls (5688.0000,318.0000) and (5676.0000,312.7500) .. (5603.2500,316.5000)
  .. controls (5550.0000,319.5000) and (5547.0000,307.5000) ..
  (5592.7500,274.5000) .. controls (5613.0000,260.2500) and (5634.0000,239.2500)
  .. (5640.0000,228.7500) .. controls (5645.2500,218.2500) and
  (5653.5000,210.0000) .. (5658.0000,210.0000) .. controls (5662.5000,210.0000)
  and (5681.2500,196.5000) .. (5699.2500,180.0000) .. controls
  (5717.2500,163.5000) and (5738.2500,148.5000) .. (5745.0000,146.2500) ..
  controls (5763.7500,140.2500) and (5797.5000,155.2500) .. (5797.5000,169.5000)
  .. controls (5797.5000,176.2500) and (5809.5000,196.5000) ..
  (5823.7500,214.5000) .. controls (5838.0000,231.7500) and (5850.0000,248.2500)
  .. (5850.0000,251.2500) .. controls (5850.0000,253.5000) and
  (5858.2500,267.0000) .. (5868.7500,280.5000) .. controls (5881.5000,297.0000)
  and (5887.5000,315.0000) .. (5887.5000,334.5000) .. controls
  (5887.5000,351.0000) and (5892.0000,370.5000) .. (5898.0000,378.7500) ..
  controls (5903.2500,387.0000) and (5910.7500,417.7500) .. (5913.7500,447.7500)
  .. controls (5916.7500,477.7500) and (5922.7500,504.7500) ..
  (5927.2500,508.5000) .. controls (5932.5000,513.0000) and (5958.0000,517.5000)
  .. (5985.0000,519.7500) .. controls (6012.0000,522.0000) and
  (6059.2500,528.0000) .. (6090.0000,532.5000) .. controls (6137.2500,540.0000)
  and (6196.5000,544.5000) .. (6290.2500,547.5000) .. controls
  (6315.0000,548.2500) and (6315.7500,555.7500) .. (6296.2500,597.0000) ..
  controls (6275.2500,641.2500) and (6252.0000,656.2500) .. (6216.0000,649.5000)
  .. controls (6202.5000,646.5000) and (6159.0000,639.7500) ..
  (6120.0000,633.7500) .. controls (6081.0000,627.7500) and (6033.7500,619.5000)
  .. (6015.0000,615.0000) .. controls (5996.2500,610.5000) and
  (5973.7500,606.0000) .. (5964.7500,604.5000) .. controls (5955.7500,603.0000)
  and (5938.5000,599.2500) .. (5925.7500,596.2500) .. controls
  (5898.7500,590.2500) and (5872.5000,597.0000) .. (5872.5000,609.7500) ..
  controls (5872.5000,615.0000) and (5884.5000,632.2500) .. (5898.7500,648.7500)
  .. controls (5913.0000,665.2500) and (5927.2500,685.5000) ..
  (5929.5000,693.7500) .. controls (5932.5000,702.0000) and (5940.0000,717.0000)
  .. (5947.5000,727.5000) .. controls (5955.0000,738.0000) and
  (5963.2500,753.7500) .. (5965.5000,763.5000) .. controls (5968.5000,772.5000)
  and (5982.7500,792.7500) .. (5997.0000,807.7500) .. controls
  (6015.0000,826.5000) and (6020.2500,837.7500) .. (6015.0000,843.0000) ..
  controls (6011.2500,846.7500) and (6007.5000,852.7500) .. (6007.5000,855.7500)
  .. controls (6007.5000,864.7500) and (6060.7500,893.2500) ..
  (6068.2500,888.7500) .. controls (6077.2500,882.7500) and (6156.7500,945.0000)
  .. (6161.2500,960.7500) .. controls (6163.5000,968.2500) and
  (6173.2500,975.7500) .. (6183.0000,978.0000) .. controls (6192.0000,980.2500)
  and (6211.5000,993.0000) .. (6226.5000,1006.5000) .. controls
  (6240.7500,1020.0000) and (6264.7500,1041.0000) .. (6279.7500,1053.0000) ..
  controls (6295.5000,1065.0000) and (6312.7500,1083.7500) ..
  (6319.5000,1094.2500) .. controls (6331.5000,1111.5000) and
  (6330.7500,1113.0000) .. (6318.0000,1122.7500) .. controls
  (6308.2500,1130.2500) and (6293.2500,1132.5000) .. (6268.5000,1128.7500) ..
  controls (6248.2500,1126.5000) and (6232.5000,1127.2500) ..
  (6232.5000,1130.2500) .. controls (6232.5000,1133.2500) and
  (6247.5000,1146.0000) .. (6266.2500,1157.2500) .. controls
  (6284.2500,1169.2500) and (6307.5000,1188.0000) .. (6316.5000,1198.5000) ..
  controls (6326.2500,1209.7500) and (6342.7500,1224.7500) ..
  (6354.0000,1231.5000) .. controls (6378.7500,1248.0000) and
  (6394.5000,1290.7500) .. (6382.5000,1312.5000) .. controls
  (6378.0000,1320.7500) and (6371.2500,1327.5000) .. (6367.5000,1327.5000) ..
  controls (6361.5000,1327.5000) and (6314.2500,1368.0000) ..
  (6273.0000,1408.5000) .. controls (6255.0000,1425.7500) and
  (6211.5000,1431.0000) .. (6198.0000,1417.5000) .. controls
  (6194.2500,1413.7500) and (6165.7500,1407.0000) .. (6135.0000,1401.7500) ..
  controls (6104.2500,1397.2500) and (6072.0000,1390.5000) ..
  (6063.7500,1387.5000) .. controls (6055.5000,1383.7500) and
  (6045.0000,1380.0000) .. (6041.2500,1378.5000) .. controls
  (6036.7500,1377.0000) and (6014.2500,1364.2500) .. (5991.0000,1350.0000) ..
  controls (5942.2500,1320.0000) and (5934.0000,1302.0000) ..
  (5972.2500,1308.0000) .. controls (6027.7500,1317.7500) and
  (6112.5000,1318.5000) .. (6117.7500,1310.2500) .. controls
  (6120.7500,1305.7500) and (6122.2500,1268.2500) .. (6122.2500,1227.7500) ..
  controls (6120.7500,1163.2500) and (6118.5000,1151.2500) ..
  (6105.7500,1137.0000) .. controls (6096.7500,1128.0000) and
  (6090.0000,1116.7500) .. (6090.0000,1112.2500) .. controls
  (6090.0000,1101.0000) and (6074.2500,1089.7500) .. (6051.7500,1083.7500) ..
  controls (6027.0000,1077.7500) and (6022.5000,1087.5000) ..
  (6018.0000,1158.0000) .. controls (6015.0000,1198.5000) and
  (6016.5000,1212.0000) .. (6027.0000,1223.2500) .. controls
  (6056.2500,1255.5000) and (6018.7500,1276.5000) .. (5948.2500,1266.7500) ..
  controls (5921.2500,1263.0000) and (5893.5000,1261.5000) ..
  (5886.0000,1264.5000) .. controls (5868.0000,1269.7500) and
  (5868.7500,1299.0000) .. (5887.5000,1316.2500) .. controls
  (5895.7500,1323.7500) and (5902.5000,1334.2500) .. (5902.5000,1339.5000) ..
  controls (5902.5000,1344.7500) and (5910.7500,1358.2500) ..
  (5920.5000,1370.2500) .. controls (5930.2500,1381.5000) and
  (5946.0000,1404.7500) .. (5955.0000,1420.5000) -- (5971.5000,1450.5000) --
  (5952.0000,1464.7500) .. controls (5941.5000,1472.2500) and
  (5932.5000,1483.5000) .. (5932.5000,1489.5000) .. controls
  (5932.5000,1503.0000) and (5901.7500,1503.0000) .. (5883.0000,1488.7500) --
  cycle(5838.7500,1219.5000) .. controls (5853.0000,1209.7500) and
  (5852.2500,1209.0000) .. (5831.2500,1208.2500) .. controls
  (5818.5000,1208.2500) and (5802.7500,1207.5000) .. (5794.5000,1207.5000) ..
  controls (5777.2500,1206.7500) and (5772.0000,1211.2500) ..
  (5778.7500,1221.7500) .. controls (5785.5000,1233.7500) and
  (5822.2500,1232.2500) .. (5838.7500,1219.5000) -- cycle(5962.5000,1143.7500)
  .. controls (5967.7500,1137.0000) and (5970.0000,1130.2500) ..
  (5967.7500,1127.2500) .. controls (5964.7500,1125.0000) and
  (5966.2500,1117.5000) .. (5970.0000,1110.0000) .. controls
  (5974.5000,1101.0000) and (5973.7500,1092.7500) .. (5967.0000,1083.0000) ..
  controls (5956.5000,1069.5000) and (5955.7500,1069.5000) ..
  (5940.0000,1083.7500) .. controls (5913.7500,1107.7500) and
  (5909.2500,1120.5000) .. (5922.0000,1138.5000) .. controls
  (5935.5000,1158.0000) and (5949.7500,1159.5000) .. (5962.5000,1143.7500) --
  cycle(5880.0000,1038.7500) .. controls (5889.7500,1026.7500) and
  (5889.0000,1026.0000) .. (5846.2500,1016.2500) -- (5823.7500,1011.0000) --
  (5841.7500,1030.5000) .. controls (5862.7500,1053.0000) and
  (5867.2500,1053.7500) .. (5880.0000,1038.7500) -- cycle    
  (4012.5000,1299.0000) .. controls (3975.7500,1262.2500) and
  (3974.2500,1239.7500) .. (4005.7500,1200.0000) -- (4029.7500,1170.7500) --
  (4025.2500,1098.0000) .. controls (4022.2500,1057.5000) and
  (4017.0000,1021.5000) .. (4012.5000,1017.0000) .. controls
  (4008.7500,1013.2500) and (4005.0000,995.2500) .. (4005.0000,978.0000) ..
  controls (4005.0000,959.2500) and (4000.5000,942.7500) .. (3993.7500,937.5000)
  .. controls (3987.0000,931.5000) and (3984.0000,921.7500) ..
  (3987.0000,911.2500) .. controls (3990.0000,900.0000) and (3985.5000,885.7500)
  .. (3976.5000,872.2500) .. controls (3968.2500,861.0000) and
  (3957.0000,834.7500) .. (3951.7500,814.5000) .. controls (3938.2500,767.2500)
  and (3911.2500,746.2500) .. (3847.5000,735.0000) .. controls
  (3820.5000,729.7500) and (3792.0000,723.0000) .. (3783.7500,720.0000) ..
  controls (3730.5000,700.5000) and (3677.2500,687.0000) .. (3651.0000,687.0000)
  .. controls (3621.0000,686.2500) and (3606.0000,674.2500) ..
  (3621.7500,663.7500) .. controls (3626.2500,661.5000) and (3630.0000,651.0000)
  .. (3630.0000,641.2500) .. controls (3630.0000,631.5000) and
  (3633.7500,621.0000) .. (3637.5000,618.7500) .. controls (3642.0000,616.5000)
  and (3645.0000,608.2500) .. (3645.0000,601.5000) .. controls
  (3645.0000,570.0000) and (3722.2500,543.7500) .. (3758.2500,563.2500) ..
  controls (3766.5000,567.0000) and (3782.2500,570.0000) .. (3792.7500,568.5000)
  .. controls (3810.7500,566.2500) and (3809.2500,564.0000) ..
  (3765.7500,521.2500) .. controls (3717.7500,474.0000) and (3681.7500,450.7500)
  .. (3655.5000,450.0000) .. controls (3634.5000,450.0000) and
  (3594.7500,407.2500) .. (3605.2500,396.7500) .. controls (3614.2500,387.7500)
  and (3624.0000,387.0000) .. (3704.2500,392.2500) .. controls
  (3763.5000,396.0000) and (3840.7500,416.2500) .. (3887.2500,439.5000) ..
  controls (3899.2500,445.5000) and (3915.7500,450.0000) .. (3924.7500,450.0000)
  .. controls (3947.2500,450.0000) and (3957.0000,457.5000) ..
  (3963.7500,480.0000) .. controls (3966.7500,490.5000) and (3977.2500,509.2500)
  .. (3986.2500,521.2500) .. controls (3996.0000,534.0000) and
  (4008.7500,556.5000) .. (4015.5000,572.2500) .. controls (4026.0000,599.2500)
  and (4045.5000,614.2500) .. (4055.2500,604.5000) .. controls
  (4057.5000,602.2500) and (4060.5000,588.7500) .. (4061.2500,573.7500) ..
  controls (4062.7500,554.2500) and (4071.0000,540.0000) .. (4094.2500,517.5000)
  .. controls (4113.0000,499.5000) and (4125.0000,480.7500) ..
  (4125.0000,470.2500) .. controls (4125.0000,453.0000) and (4152.7500,420.0000)
  .. (4167.0000,420.0000) .. controls (4170.7500,420.0000) and
  (4189.5000,405.0000) .. (4207.5000,386.2500) .. controls (4225.5000,367.5000)
  and (4246.5000,352.5000) .. (4254.0000,352.5000) .. controls
  (4261.5000,352.5000) and (4267.5000,349.5000) .. (4267.5000,346.5000) ..
  controls (4267.5000,336.0000) and (4319.2500,315.0000) .. (4344.7500,315.0000)
  .. controls (4371.7500,315.0000) and (4439.2500,337.5000) ..
  (4467.0000,356.2500) .. controls (4476.7500,362.2500) and (4490.2500,375.7500)
  .. (4496.2500,385.5000) .. controls (4503.0000,395.2500) and
  (4521.7500,408.7500) .. (4539.7500,415.5000) .. controls (4602.0000,441.0000)
  and (4608.7500,446.2500) .. (4608.7500,465.0000) .. controls
  (4608.7500,483.7500) and (4608.7500,483.7500) .. (4526.2500,484.5000) ..
  controls (4444.5000,486.0000) and (4413.0000,489.7500) .. (4383.7500,502.5000)
  .. controls (4375.5000,506.2500) and (4353.7500,513.0000) ..
  (4335.7500,517.5000) .. controls (4310.2500,524.2500) and (4301.2500,531.0000)
  .. (4295.2500,548.2500) .. controls (4290.0000,561.0000) and
  (4281.0000,570.0000) .. (4273.5000,570.0000) .. controls (4259.2500,570.0000)
  and (4242.7500,584.2500) .. (4218.7500,618.0000) .. controls
  (4210.5000,630.0000) and (4196.2500,648.7500) .. (4186.5000,660.7500) ..
  controls (4176.7500,672.7500) and (4171.5000,685.5000) .. (4173.7500,690.0000)
  .. controls (4187.2500,711.7500) and (4339.5000,765.0000) ..
  (4386.7500,765.0000) .. controls (4404.7500,765.0000) and (4419.7500,773.2500)
  .. (4447.5000,799.5000) .. controls (4468.5000,819.0000) and
  (4485.0000,838.5000) .. (4485.0000,843.7500) .. controls (4485.0000,855.0000)
  and (4450.5000,885.0000) .. (4436.2500,885.0000) .. controls
  (4430.2500,885.0000) and (4425.0000,888.7500) .. (4425.0000,892.5000) ..
  controls (4425.0000,897.0000) and (4420.5000,900.0000) .. (4414.5000,900.0000)
  .. controls (4408.5000,900.0000) and (4402.5000,903.7500) ..
  (4401.0000,907.5000) .. controls (4399.5000,912.0000) and (4365.0000,921.0000)
  .. (4323.7500,927.0000) .. controls (4282.5000,933.7500) and
  (4243.5000,942.0000) .. (4236.7500,945.0000) .. controls (4230.0000,948.7500)
  and (4220.2500,948.0000) .. (4214.2500,944.2500) .. controls
  (4205.2500,939.0000) and (4206.0000,934.5000) .. (4217.2500,914.2500) ..
  controls (4224.0000,901.5000) and (4232.2500,879.0000) .. (4234.5000,863.2500)
  .. controls (4239.0000,836.2500) and (4237.5000,834.7500) ..
  (4209.7500,822.0000) .. controls (4193.2500,814.5000) and (4170.0000,810.0000)
  .. (4158.0000,811.5000) .. controls (4138.5000,813.7500) and
  (4136.2500,816.0000) .. (4138.5000,836.2500) .. controls (4140.0000,848.2500)
  and (4144.5000,862.5000) .. (4148.2500,867.0000) .. controls
  (4152.0000,871.5000) and (4161.7500,902.2500) .. (4170.0000,934.5000) ..
  controls (4185.0000,993.7500) and (4203.0000,1033.5000) ..
  (4218.0000,1044.0000) .. controls (4222.5000,1047.0000) and
  (4233.7500,1050.0000) .. (4243.5000,1050.0000) .. controls
  (4253.2500,1050.0000) and (4260.0000,1054.5000) .. (4260.0000,1061.2500) ..
  controls (4260.0000,1071.7500) and (4237.5000,1125.7500) ..
  (4230.0000,1132.5000) .. controls (4227.7500,1134.7500) and
  (4224.7500,1148.2500) .. (4224.0000,1162.5000) .. controls
  (4222.5000,1176.7500) and (4213.5000,1206.0000) .. (4203.0000,1227.0000) ..
  controls (4186.5000,1260.0000) and (4177.5000,1269.7500) ..
  (4141.5000,1287.7500) .. controls (4118.2500,1299.0000) and
  (4097.2500,1311.0000) .. (4095.0000,1314.0000) .. controls
  (4092.0000,1317.0000) and (4080.0000,1322.2500) .. (4066.5000,1324.5000) ..
  controls (4045.5000,1329.0000) and (4038.7500,1325.2500) ..
  (4012.5000,1299.0000) -- cycle    
  (5418.7500,1222.5000) .. controls (5405.2500,1207.5000) and
  (5405.2500,1206.7500) .. (5422.5000,1188.7500) .. controls
  (5436.0000,1174.5000) and (5439.7500,1161.7500) .. (5439.7500,1131.0000) ..
  controls (5439.0000,1071.7500) and (5435.2500,1027.5000) ..
  (5429.2500,1027.5000) .. controls (5427.0000,1027.5000) and
  (5421.0000,1019.2500) .. (5416.5000,1008.7500) .. controls
  (5406.0000,985.5000) and (5398.5000,985.5000) .. (5370.0000,1006.5000) ..
  controls (5352.7500,1019.2500) and (5345.2500,1020.7500) ..
  (5338.5000,1014.0000) .. controls (5331.7500,1007.2500) and
  (5332.5000,1001.2500) .. (5340.0000,986.2500) .. controls (5348.2500,970.5000)
  and (5348.2500,962.2500) .. (5340.0000,937.5000) .. controls
  (5334.7500,921.0000) and (5327.2500,907.5000) .. (5323.5000,907.5000) ..
  controls (5320.5000,907.5000) and (5317.5000,903.0000) .. (5317.5000,898.5000)
  .. controls (5317.5000,888.7500) and (5271.0000,855.0000) ..
  (5259.0000,855.0000) .. controls (5251.5000,855.0000) and (5192.2500,824.2500)
  .. (5163.0000,805.5000) .. controls (5145.0000,793.5000) and
  (5143.5000,789.0000) .. (5146.5000,751.5000) .. controls (5149.5000,718.5000)
  and (5154.0000,707.2500) .. (5172.0000,690.7500) .. controls
  (5203.5000,661.5000) and (5243.2500,645.0000) .. (5292.7500,641.2500) ..
  controls (5329.5000,639.0000) and (5338.5000,640.5000) .. (5352.7500,654.0000)
  .. controls (5362.5000,663.0000) and (5370.0000,675.7500) ..
  (5370.0000,683.2500) .. controls (5370.0000,690.7500) and (5373.0000,698.2500)
  .. (5376.7500,700.5000) .. controls (5380.5000,702.7500) and
  (5385.7500,714.0000) .. (5388.7500,725.2500) .. controls (5391.0000,736.5000)
  and (5400.7500,755.2500) .. (5409.0000,767.2500) .. controls
  (5418.0000,779.2500) and (5426.2500,803.2500) .. (5427.7500,820.5000) ..
  controls (5429.2500,837.0000) and (5435.2500,855.0000) .. (5440.5000,858.7500)
  .. controls (5458.5000,873.0000) and (5468.2500,900.7500) ..
  (5466.0000,932.2500) .. controls (5463.7500,960.7500) and (5465.2500,963.7500)
  .. (5482.5000,966.7500) .. controls (5505.7500,969.7500) and
  (5514.0000,981.0000) .. (5505.0000,998.2500) .. controls (5501.2500,1005.0000)
  and (5498.2500,1037.2500) .. (5498.2500,1069.5000) .. controls
  (5499.7500,1172.2500) and (5493.0000,1194.7500) .. (5452.5000,1227.7500) ..
  controls (5437.5000,1240.5000) and (5434.5000,1239.7500) ..
  (5418.7500,1222.5000) -- cycle    
  (2498.2500,1210.5000) .. controls (2489.2500,1199.2500) and
  (2482.5000,1185.7500) .. (2482.5000,1179.7500) .. controls
  (2482.5000,1174.5000) and (2477.2500,1161.7500) .. (2471.2500,1152.0000) ..
  controls (2464.5000,1142.2500) and (2458.5000,1122.7500) ..
  (2457.0000,1109.2500) .. controls (2454.7500,1085.2500) and
  (2445.0000,1056.0000) .. (2429.2500,1026.0000) .. controls
  (2425.5000,1018.5000) and (2422.5000,1004.2500) .. (2422.5000,993.7500) ..
  controls (2422.5000,983.2500) and (2420.2500,975.0000) .. (2416.5000,975.0000)
  .. controls (2413.5000,975.0000) and (2403.0000,960.0000) ..
  (2392.5000,941.2500) .. controls (2379.0000,916.5000) and (2367.0000,905.2500)
  .. (2347.5000,899.2500) .. controls (2333.2500,894.7500) and
  (2314.5000,886.5000) .. (2306.2500,881.2500) .. controls (2298.0000,876.7500)
  and (2283.0000,870.0000) .. (2272.5000,867.7500) .. controls
  (2262.0000,865.5000) and (2232.0000,855.0000) .. (2205.0000,845.2500) ..
  controls (2178.0000,835.5000) and (2149.5000,825.0000) .. (2141.2500,822.0000)
  .. controls (2095.5000,806.2500) and (2088.7500,798.7500) ..
  (2086.5000,765.7500) .. controls (2084.2500,737.2500) and (2087.2500,729.7500)
  .. (2104.5000,714.7500) .. controls (2137.5000,687.0000) and
  (2151.0000,688.5000) .. (2199.0000,729.7500) .. controls (2268.7500,788.2500)
  and (2316.7500,787.5000) .. (2303.2500,727.5000) .. controls
  (2294.2500,687.7500) and (2282.2500,669.7500) .. (2257.5000,658.5000) ..
  controls (2245.5000,653.2500) and (2235.0000,646.5000) .. (2235.0000,643.5000)
  .. controls (2235.0000,639.7500) and (2226.7500,637.5000) ..
  (2217.0000,637.5000) .. controls (2196.0000,637.5000) and (2163.0000,612.7500)
  .. (2156.2500,592.5000) .. controls (2153.2500,583.5000) and
  (2157.0000,569.2500) .. (2165.2500,556.5000) .. controls (2172.7500,545.2500)
  and (2182.5000,529.5000) .. (2187.0000,521.2500) .. controls
  (2191.5000,513.0000) and (2205.0000,504.7500) .. (2217.7500,501.7500) ..
  controls (2250.0000,495.0000) and (2259.7500,488.2500) .. (2250.7500,477.0000)
  .. controls (2241.0000,465.7500) and (2254.5000,450.0000) ..
  (2274.0000,450.0000) .. controls (2299.5000,450.0000) and (2287.5000,428.2500)
  .. (2257.5000,419.2500) .. controls (2220.0000,408.0000) and
  (2222.2500,396.0000) .. (2263.5000,388.5000) .. controls (2306.2500,381.0000)
  and (2310.0000,378.0000) .. (2310.0000,348.7500) .. controls
  (2310.0000,328.5000) and (2314.5000,321.0000) .. (2337.0000,307.5000) ..
  controls (2361.0000,291.7500) and (2366.2500,291.7500) .. (2397.7500,300.0000)
  .. controls (2431.5000,309.7500) and (2431.5000,309.7500) ..
  (2427.7500,339.0000) .. controls (2422.5000,378.0000) and (2428.5000,397.5000)
  .. (2445.7500,397.5000) .. controls (2478.7500,397.5000) and
  (2468.2500,439.5000) .. (2435.2500,444.0000) .. controls (2412.7500,447.0000)
  and (2414.2500,468.0000) .. (2437.5000,471.0000) .. controls
  (2482.5000,475.5000) and (2490.0000,480.0000) .. (2490.0000,498.7500) ..
  controls (2490.0000,515.2500) and (2486.2500,517.5000) .. (2465.2500,517.5000)
  .. controls (2451.7500,517.5000) and (2433.7500,522.0000) ..
  (2426.2500,528.0000) .. controls (2412.7500,537.7500) and (2414.2500,539.2500)
  .. (2443.5000,558.0000) .. controls (2460.7500,568.5000) and
  (2482.5000,577.5000) .. (2492.2500,577.5000) .. controls (2502.0000,577.5000)
  and (2516.2500,584.2500) .. (2523.7500,592.5000) .. controls
  (2536.5000,606.7500) and (2536.5000,607.5000) .. (2519.2500,614.2500) ..
  controls (2509.5000,618.0000) and (2492.2500,623.2500) .. (2481.0000,625.5000)
  .. controls (2442.0000,633.7500) and (2457.0000,656.2500) ..
  (2536.5000,707.2500) .. controls (2559.7500,722.2500) and (2586.0000,735.0000)
  .. (2594.2500,735.0000) .. controls (2602.5000,735.0000) and
  (2617.5000,738.7500) .. (2628.0000,743.2500) .. controls (2656.5000,756.7500)
  and (2670.7500,741.0000) .. (2669.2500,698.2500) .. controls
  (2668.5000,679.5000) and (2664.7500,660.0000) .. (2661.7500,656.2500) ..
  controls (2658.7500,651.7500) and (2647.5000,612.0000) .. (2637.0000,567.7500)
  .. controls (2611.5000,459.7500) and (2611.5000,459.7500) ..
  (2558.2500,453.7500) .. controls (2509.5000,448.5000) and (2508.7500,447.0000)
  .. (2523.7500,383.2500) .. controls (2530.5000,355.5000) and
  (2598.0000,285.0000) .. (2618.2500,285.0000) .. controls (2629.5000,285.0000)
  and (2655.0000,342.7500) .. (2655.0000,368.2500) .. controls
  (2655.0000,372.7500) and (2661.7500,383.2500) .. (2670.7500,390.0000) ..
  controls (2687.2500,405.0000) and (2710.5000,462.7500) .. (2718.7500,508.5000)
  .. controls (2721.0000,524.2500) and (2732.2500,547.5000) ..
  (2743.5000,561.0000) .. controls (2754.7500,573.7500) and (2769.7500,601.5000)
  .. (2777.2500,622.5000) .. controls (2784.7500,642.7500) and
  (2793.7500,660.0000) .. (2797.5000,660.0000) .. controls (2802.0000,660.0000)
  and (2805.0000,672.0000) .. (2805.0000,687.0000) .. controls
  (2805.0000,701.2500) and (2810.2500,718.5000) .. (2816.2500,724.5000) ..
  controls (2822.2500,731.2500) and (2827.5000,744.0000) .. (2827.5000,754.5000)
  .. controls (2827.5000,764.2500) and (2831.2500,772.5000) ..
  (2835.0000,772.5000) .. controls (2839.5000,772.5000) and (2842.5000,780.7500)
  .. (2842.5000,790.5000) .. controls (2842.5000,800.2500) and
  (2847.7500,818.2500) .. (2853.7500,829.5000) .. controls (2869.5000,860.2500)
  and (2868.0000,873.7500) .. (2847.0000,888.0000) .. controls
  (2827.5000,900.0000) and (2793.0000,897.7500) .. (2763.7500,882.0000) ..
  controls (2755.5000,878.2500) and (2739.7500,873.7500) .. (2728.5000,873.0000)
  .. controls (2717.2500,872.2500) and (2699.2500,864.7500) ..
  (2688.0000,855.7500) .. controls (2676.7500,847.5000) and (2664.7500,840.0000)
  .. (2661.0000,840.0000) .. controls (2657.2500,840.0000) and
  (2640.0000,833.2500) .. (2623.5000,825.0000) .. controls (2606.2500,816.7500)
  and (2588.2500,810.0000) .. (2584.5000,810.0000) .. controls
  (2580.0000,810.0000) and (2560.5000,801.7500) .. (2541.0000,791.2500) ..
  controls (2493.0000,765.7500) and (2489.2500,767.2500) .. (2491.5000,804.7500)
  .. controls (2493.0000,836.2500) and (2503.5000,855.0000) ..
  (2520.0000,855.0000) .. controls (2530.5000,855.0000) and (2596.5000,900.0000)
  .. (2604.7500,913.5000) .. controls (2607.7500,918.0000) and
  (2620.5000,927.7500) .. (2632.5000,933.7500) .. controls (2644.5000,939.7500)
  and (2662.5000,951.7500) .. (2671.5000,960.7500) .. controls
  (2730.0000,1012.5000) and (2769.7500,1042.5000) .. (2786.2500,1047.0000) ..
  controls (2801.2500,1050.7500) and (2804.2500,1056.7500) ..
  (2806.5000,1086.0000) .. controls (2809.5000,1128.0000) and
  (2795.2500,1155.0000) .. (2770.5000,1155.0000) .. controls
  (2761.5000,1155.0000) and (2751.7500,1152.0000) .. (2748.7500,1148.2500) ..
  controls (2746.5000,1144.5000) and (2727.7500,1135.5000) ..
  (2707.5000,1128.7500) .. controls (2687.2500,1122.0000) and
  (2654.2500,1103.2500) .. (2635.5000,1087.5000) .. controls
  (2607.0000,1064.2500) and (2597.2500,1059.7500) .. (2586.0000,1065.7500) ..
  controls (2567.2500,1075.5000) and (2569.5000,1086.7500) ..
  (2595.0000,1117.5000) .. controls (2610.7500,1135.5000) and
  (2617.5000,1151.2500) .. (2617.5000,1170.0000) .. controls
  (2617.5000,1194.0000) and (2613.7500,1199.2500) .. (2586.7500,1213.5000) ..
  controls (2544.7500,1236.0000) and (2517.7500,1234.5000) ..
  (2498.2500,1210.5000) -- cycle(2341.5000,531.7500) .. controls
  (2327.2500,517.5000) and (2310.0000,525.7500) .. (2310.0000,546.7500) ..
  controls (2310.0000,553.5000) and (2314.5000,568.5000) .. (2319.7500,579.7500)
  -- (2328.7500,600.0000) -- (2341.5000,572.2500) .. controls
  (2353.5000,546.0000) and (2353.5000,543.0000) .. (2341.5000,531.7500) --
  cycle    
  (896.2500,857.2500) .. controls (888.0000,855.0000) and
  (878.2500,850.5000) .. (874.5000,846.7500) .. controls (865.5000,838.5000) and
  (847.5000,787.5000) .. (847.5000,770.2500) .. controls (847.5000,755.2500) and
  (864.0000,735.0000) .. (876.7500,735.0000) .. controls (881.2500,735.0000) and
  (885.0000,732.7500) .. (885.0000,729.7500) .. controls (885.0000,722.2500) and
  (835.5000,690.0000) .. (823.5000,690.0000) .. controls (810.7500,690.0000) and
  (765.7500,675.0000) .. (730.5000,659.2500) .. controls (713.2500,651.0000) and
  (691.5000,645.0000) .. (681.7500,645.0000) .. controls (672.0000,645.0000) and
  (657.0000,639.7500) .. (649.5000,633.7500) .. controls (641.2500,627.7500) and
  (628.5000,622.5000) .. (620.2500,622.5000) .. controls (612.7500,622.5000) and
  (595.5000,618.0000) .. (582.7500,612.0000) .. controls (569.2500,606.0000) and
  (546.7500,595.5000) .. (532.5000,588.7500) .. controls (461.2500,556.5000) and
  (454.5000,549.0000) .. (465.0000,511.5000) .. controls (474.0000,477.7500) and
  (482.2500,468.7500) .. (497.2500,477.7500) .. controls (501.7500,480.7500) and
  (513.0000,484.5000) .. (520.5000,485.2500) .. controls (556.5000,491.2500) and
  (651.0000,531.0000) .. (667.5000,547.5000) .. controls (675.0000,555.0000) and
  (723.7500,570.7500) .. (749.2500,574.5000) .. controls (763.5000,576.7500) and
  (780.0000,582.0000) .. (785.2500,586.5000) .. controls (793.5000,593.2500) and
  (798.7500,592.5000) .. (807.0000,583.5000) .. controls (817.5000,573.0000) and
  (816.7500,570.7500) .. (799.5000,556.5000) .. controls (777.0000,539.2500) and
  (774.0000,517.5000) .. (793.5000,517.5000) .. controls (814.5000,516.7500) and
  (765.0000,480.0000) .. (742.5000,480.0000) .. controls (717.0000,480.0000) and
  (662.2500,459.7500) .. (636.7500,441.7500) .. controls (625.5000,434.2500) and
  (610.5000,427.5000) .. (602.2500,427.5000) .. controls (594.7500,426.7500) and
  (575.2500,420.7500) .. (558.7500,412.5000) .. controls (542.2500,404.2500) and
  (523.5000,397.5000) .. (517.5000,397.5000) .. controls (511.5000,397.5000) and
  (496.5000,392.2500) .. (484.5000,386.2500) .. controls (473.2500,380.2500) and
  (457.5000,375.0000) .. (450.7500,375.0000) .. controls (444.0000,375.0000) and
  (429.0000,369.7500) .. (417.0000,363.7500) .. controls (405.7500,357.7500) and
  (393.7500,354.0000) .. (390.0000,356.2500) .. controls (387.0000,357.7500) and
  (368.2500,351.7500) .. (348.0000,342.0000) .. controls (327.7500,333.0000) and
  (301.5000,321.0000) .. (290.2500,316.5000) .. controls (276.7500,310.5000) and
  (270.0000,303.0000) .. (271.5000,294.7500) .. controls (273.0000,286.5000) and
  (267.0000,278.2500) .. (257.2500,273.7500) .. controls (232.5000,263.2500) and
  (236.2500,252.7500) .. (272.2500,230.2500) .. controls (287.2500,220.5000) and
  (301.5000,218.2500) .. (327.7500,221.2500) .. controls (347.2500,223.5000) and
  (366.7500,228.7500) .. (370.5000,232.5000) .. controls (375.0000,237.0000) and
  (382.5000,240.0000) .. (387.7500,240.0000) .. controls (393.7500,240.0000) and
  (408.0000,247.5000) .. (419.2500,255.7500) .. controls (447.0000,276.0000) and
  (459.0000,270.0000) .. (447.7500,240.0000) .. controls (443.2500,227.2500) and
  (436.5000,217.5000) .. (433.5000,217.5000) .. controls (430.5000,217.5000) and
  (427.5000,213.7500) .. (427.5000,210.0000) .. controls (427.5000,198.7500) and
  (346.5000,118.5000) .. (313.5000,96.7500) .. controls (297.7500,87.0000) and
  (285.0000,73.5000) .. (285.0000,66.7500) .. controls (285.0000,60.7500) and
  (296.2500,45.0000) .. (309.7500,31.5000) .. controls (337.5000,4.5000) and
  (360.7500,1.5000) .. (402.7500,18.7500) .. controls (417.7500,24.7500) and
  (431.2500,28.5000) .. (433.5000,27.0000) .. controls (435.0000,24.7500) and
  (449.2500,28.5000) .. (464.2500,34.5000) .. controls (479.2500,41.2500) and
  (511.5000,53.2500) .. (536.2500,61.5000) .. controls (561.0000,69.7500) and
  (601.5000,89.2500) .. (626.2500,104.2500) .. controls (679.5000,136.5000) and
  (734.2500,152.2500) .. (748.5000,141.0000) .. controls (753.7500,136.5000) and
  (756.7500,128.2500) .. (754.5000,123.0000) .. controls (753.0000,118.5000) and
  (759.0000,107.2500) .. (768.0000,98.2500) .. controls (801.0000,66.7500) and
  (951.0000,81.0000) .. (965.2500,117.0000) .. controls (972.0000,135.7500) and
  (956.2500,240.7500) .. (941.2500,272.2500) .. controls (934.5000,287.2500) and
  (924.0000,300.0000) .. (918.0000,300.0000) .. controls (912.7500,300.0000) and
  (903.7500,306.7500) .. (897.0000,315.7500) .. controls (891.0000,324.0000) and
  (879.0000,336.7500) .. (870.0000,342.7500) .. controls (855.0000,353.2500) and
  (852.7500,352.5000) .. (835.5000,336.7500) .. controls (825.7500,327.7500) and
  (816.0000,314.2500) .. (813.7500,307.5000) .. controls (809.2500,293.2500) and
  (764.2500,270.0000) .. (740.2500,270.0000) .. controls (731.2500,270.0000) and
  (715.5000,264.7500) .. (705.7500,258.0000) .. controls (693.7500,249.7500) and
  (686.2500,248.2500) .. (681.0000,253.5000) .. controls (668.2500,266.2500) and
  (678.7500,281.2500) .. (710.2500,297.7500) .. controls (726.0000,306.0000) and
  (743.2500,321.7500) .. (749.2500,333.7500) .. controls (754.5000,345.0000) and
  (765.7500,356.2500) .. (773.2500,357.7500) .. controls (781.5000,360.0000) and
  (787.5000,365.2500) .. (787.5000,369.0000) .. controls (787.5000,372.7500) and
  (796.5000,378.7500) .. (808.5000,383.2500) .. controls (819.7500,387.0000) and
  (832.5000,397.5000) .. (836.2500,405.7500) .. controls (843.7500,422.2500) and
  (890.2500,442.5000) .. (921.0000,442.5000) .. controls (930.7500,442.5000) and
  (937.5000,447.0000) .. (937.5000,453.7500) .. controls (937.5000,459.7500) and
  (940.5000,465.0000) .. (944.2500,465.0000) .. controls (960.7500,465.0000) and
  (961.5000,496.5000) .. (945.0000,513.7500) .. controls (922.5000,537.7500) and
  (929.2500,562.5000) .. (967.5000,603.0000) .. controls (984.0000,619.5000) and
  (997.5000,640.5000) .. (997.5000,649.5000) .. controls (997.5000,657.7500) and
  (1004.2500,671.2500) .. (1012.5000,678.7500) .. controls (1030.5000,695.2500)
  and (1032.0000,729.0000) .. (1015.5000,743.2500) .. controls
  (1008.7500,748.5000) and (999.0000,765.7500) .. (992.2500,780.7500) ..
  controls (982.5000,806.2500) and (927.7500,864.0000) .. (916.5000,861.7500) ..
  controls (913.5000,861.0000) and (904.5000,859.5000) .. (896.2500,857.2500) --
  cycle    
  (295.5000,722.2500) .. controls (289.5000,716.2500) and
  (285.0000,703.5000) .. (285.0000,693.7500) .. controls (285.0000,684.0000) and
  (282.0000,673.5000) .. (277.5000,671.2500) .. controls (267.0000,664.5000) and
  (267.7500,635.2500) .. (279.0000,624.0000) .. controls (290.2500,612.7500) and
  (344.2500,612.7500) .. (364.5000,624.7500) .. controls (399.0000,645.0000) and
  (442.5000,685.5000) .. (442.5000,697.5000) .. controls (442.5000,719.2500) and
  (426.7500,725.2500) .. (365.2500,729.0000) .. controls (320.2500,732.0000) and
  (303.7500,730.5000) .. (295.5000,722.2500) -- cycle    
  (2011.5000,483.0000) .. controls (2002.5000,477.0000) and
  (1995.0000,463.5000) .. (1995.0000,453.7500) .. controls (1995.0000,444.0000)
  and (1992.0000,433.5000) .. (1987.5000,431.2500) .. controls
  (1983.7500,429.0000) and (1980.0000,417.0000) .. (1980.0000,405.7500) ..
  controls (1980.0000,394.5000) and (1977.7500,382.5000) .. (1974.7500,380.2500)
  .. controls (1964.2500,369.0000) and (1942.5000,295.5000) ..
  (1942.5000,269.2500) .. controls (1942.5000,245.2500) and (1945.5000,240.0000)
  .. (1968.7500,229.5000) .. controls (1983.7500,222.0000) and
  (2002.5000,219.0000) .. (2015.2500,221.2500) .. controls (2037.7500,226.5000)
  and (2109.0000,255.7500) .. (2115.0000,263.2500) .. controls
  (2117.2500,265.5000) and (2124.7500,269.2500) .. (2132.2500,272.2500) ..
  controls (2139.7500,275.2500) and (2144.2500,280.5000) .. (2142.0000,284.2500)
  .. controls (2139.7500,288.0000) and (2142.7500,294.7500) ..
  (2148.7500,300.0000) .. controls (2163.7500,312.0000) and (2163.0000,322.5000)
  .. (2145.0000,345.0000) .. controls (2136.7500,355.5000) and
  (2130.0000,370.5000) .. (2130.0000,378.7500) .. controls (2130.0000,387.0000)
  and (2118.0000,406.5000) .. (2103.7500,421.5000) .. controls
  (2089.5000,436.5000) and (2077.5000,451.5000) .. (2077.5000,455.2500) ..
  controls (2076.7500,466.5000) and (2049.0000,495.0000) .. (2038.5000,495.0000)
  .. controls (2033.2500,495.0000) and (2020.5000,489.7500) ..
  (2011.5000,483.0000) -- cycle;}
%</logo>
%    \end{macrocode}
%
%    \subsection{结束}
%    \begin{macrocode}
%<@@=>
%    \end{macrocode}
%
% \end{implementation}
%
% \Finale
%
\endinput